En un servidor Linux, ¿cómo utiliza múltiples terminales en una sola conexión ssh?

15

A menudo me encuentro abriendo varias conexiones ssh para ver varios archivos de registro a la vez con tail -f.

Esto no es un problema cuando estoy en casa porque uso el cifrado de clave pública para el inicio de sesión sin contraseña. Sin embargo, a menudo usaré una computadora en mi universidad para hacer esto, así que no tengo la opción de usar mi clave privada. Me resulta molesto ingresar mi contraseña 4 o 5 veces para obtener varias ventanas de terminal.

¿Cómo puedo obtener múltiples terminales en una sola conexión?

epochwolf
fuente

Respuestas:

38

Simplemente use la pantalla GNU , es genial, ya que puede iniciar sesiones remotas y restaurarlas si su conexión se cae. Está disponible como un paquete para la mayoría de las distribuciones e incluso puede estar instalado en su sistema universitario.

El manual le dará todo lo que necesita para comenzar, por defecto todos los comandos están precedidos por Ctrl+A. Por ejemplo, para abrir la ayuda en pantalla, simplemente presione y Ctrl+Aluego presione?

Saschabeaumont
fuente
He sido administrador de Linux durante varios años y uso la pantalla muchas, muchas veces al día.
Ningún servidor está completo sin pantalla.
Gert M
2
Después de usar la pantalla durante las últimas horas, ¡no puedo creer que haya vivido sin ella! He pasado 5 años haciéndolo mal.
epochwolf
4

Eche un vistazo a los siguientes dos artículos sobre el uso compartido de conexiones SSH:

http://fermiparadox.wordpress.com/2008/06/19/ssh-connection-sharing/
http://protempore.net/~calvins/howto/ssh-connection-sharing/

Básicamente, haga una búsqueda en Google sobre el uso compartido de conexiones ssh y encontrará un montón de otros artículos sobre él.

Evan
fuente
1
Interesante. El único problema es que si mi conexión a Internet se cayera, no podría volver a conectarme sin eliminar el socket. Si no puedo conectarme, ¿cómo entro en el servidor para eliminar el socket?
epochwolf
No tiene que eliminar el socket en el servidor, es solo un intercambio del lado del cliente. Entonces ejecuta "ssh foo" una vez y crea el socket en la misma máquina en la que ejecutó el comando ssh foo. El servidor ve múltiples inicios de sesión en ttys separados, por lo que no sabe nada diferente de inicios de sesión separados "normales".
David Gardner
3

Posiblemente, podría usar el reenvío X para abrir múltiples xterms remotos en su escritorio local.

John Fouhy
fuente
El servidor no tiene X11 instalado. Además, no funciona en un sistema Windows en el que no puedo instalar un servidor X.
epochwolf
El servidor Linux no necesita tener X11 para ejecutar aplicaciones gráficas que aparecen en su escritorio local. Además, el Cygwin X-Server funciona muy bien para ejecutar cosas como Firefox desde la caja de Linux de mi casa (sin X corriendo en mi caja de inicio) y se muestran muy bien en mi computadora portátil Windows local.
shapr
2

No da una razón convincente por la que no puede usar claves privadas de los otros sistemas. Generarlos por máquina y agregar las claves aplicables ahospedadores_autorizados

Aún así, usa la pantalla.

ironfroggy
fuente
¿Es una buena idea usar una clave privada en lo que equivale a una computadora pública? ¿Especialmente considerando que no puse una frase de contraseña en la clave?
epochwolf 01 de
1
No usaría la misma clave que usa en otros lugares: generaría una nueva clave (con una frase de contraseña) y agregaría su clave pública al archivo autorizado_keys en su servidor. Póngale un nombre como "clave portátil" y quítelo de claves_autorizadas si cree que podría haberse visto comprometido.
Neall
2

También es posible que desee mirar byobu . Es una versión mejorada de Screen y creo que es un proyecto de Ubuntu. Pero viene estándar con Ubuntu 9.10 y más reciente.

Todavía tiendo a usar Screen por costumbre, pero quería mencionar esta alternativa más nueva.

3dinfluence
fuente
1

Si todo lo que está usando es seguir varios archivos, también puede estar interesado en multitail .

Evan
fuente
Enlace interesante Acabo de mencionar mi uso más común. También necesito cambiar entre vim y bash para buscar caminos para las cosas.
epochwolf
1

Una característica de pantalla no mencionada es "separar" la pantalla y seguirá ejecutando cualquier comando que tenga en ese conjunto de pantallas. Una vez que se separa la pantalla, puede cerrar sesión y todo sigue funcionando incluso después de cerrar sesión. Iniciaré la pantalla y luego haré varios comandos c para crear nuevas 'subpantallas'. Puedo cambiar entre ellos y comenzar una compilación de larga duración o procesamiento de datos y tener la seguridad de que mi conexión VPN deficiente no hará que todo muera con ella.

Después de cerrar sesión, puede volver a iniciar sesión y usar 'screen -R' que lo volverá a conectar a sus sessoins de pantalla existentes.

Paul Leclerc
fuente
0

Para usar screencon ssh, escriba

ssh -t <user>@<server> screen -r

( fuente ) hombre ssh:

-t Fuerza la asignación pseudo-terminal. Esto se puede usar para ejecutar programas arbitrarios basados ​​en pantalla en una máquina remota, lo que puede ser muy útil, por ejemplo, al implementar servicios de menú. Varias opciones -t fuerzan la asignación de tty, incluso si ssh no tiene tty local.

Yaroslav Nikitenko
fuente