it-swarm-es.tech

¿Puedo conectarme o ver sesiones ssh abandonadas?

Tengo una instancia virtual de redhat ejecutándose que puedo ssh desde cualquier Host en la red corporativa. Mi sesión ssh se interrumpió mientras ejecutaba algunos scripts que pueden o no haberme desconectado. El comando who localmente todavía enumera la conexión caída. Reconectarse con ssh inicia una sesión completamente nueva. ¿Hay alguna manera de conectarse a la sesión original? Si no, ¿puedo matarlo? Tengo acceso root y físico. No estaba usando la pantalla en la sesión original.

14
jms

Desea usar pantalla en el control remoto y luego, cuando vuelva a conectarse, vuelva a conectarse a esa instancia de pantalla.

pero no, no puede volver a conectarse a una sesión ssh en sí misma, debe usar la pantalla (o algo similar para facilitar eso).

Mire esta pregunta para al menos otra opción y algunas diferencias entre ella (tmux) y la pantalla. después de leer la respuesta a esa pregunta ... en realidad diría que tmux es mejor

ah y sí, podría kill el proceso (incluyendo la bifurcación bifurcada) para detenerlo, podría intentar skill para matar al usuario por su nombre, pero sospecho que ese usuario es root ... podría intentar matar cosas que no puede.

la respuesta se ha actualizado varias veces

11
xenoterracide

Por defecto, no puede volver a conectarse a una sesión ssh abandonada. Sin embargo, puede configurar procesos dentro de una sesión ssh, a los que puede volver a conectarse después de restablecer una nueva sesión ssh.

Lo que desea usar es la pantalla o, mejor aún, un contenedor fácil de usar alrededor de la pantalla llamado byobu.

Screen le permite ejecutar múltiples sesiones de terminal virtual en la misma sesión ssh. A tutorial y páginas de ayuda están disponibles.

byob es un contenedor que permite abrir fácilmente nuevas pantallas con una simple tecla de función en lugar de la combinación de teclas de ctrl-a. También muestra una línea de estado con todos los terminales virtuales abiertos que se pueden nombrar.

Otra característica interesante es el hecho de que toda su pantalla puede permanecer activa mientras su conexión ssh está desconectada. Simplemente se conecta nuevamente a través de ssh y llama a byobu y todo es como antes.

Por fin algunos capturas de pantalla de byobu.

4
txwikinger

Como se mencionó, la pantalla es probablemente su mejor apuesta. Si/cuando su sesión se cae, seguirá ejecutándose. Escriba 'screen -list' para ver las sesiones disponibles y 'screen -r' con la sesión que desee. Un pequeño consejo, puede completar con pestañas la cadena de sesión en lugar de copiar/pegar todo.

Sin embargo, la pantalla puede ser molesta. En mi cliente, no puede desplazarse fácilmente hacia arriba para ver el historial en la consola. Actúa un poco diferente de lo que cabría esperar. Si todo lo que quiere hacer es asegurarse de que sus procesos de larga ejecución no se maten, use 'Nohup'. Evitará que su proceso se cierre cuando pierda su conexión. Sin embargo, asegúrese de enviar su salida de proceso a un archivo si desea monitorearlo. Además, si tiene un script bash, creo que necesita llamar explícitamente 'bash' frente a Nohup. Un ejemplo...

Nohup bash ./myscript.sh> output.log 2> & 1 &

Eso significa Nohup, para evitar matar el proceso, bash para llamar explícitamente a bash si tiene cosas específicas de bash en su script, su script llamado 'myscript.sh' en el directorio actual, output.log como el archivo para enviar tanto std como error a, y '&' al final para ejecutar el proceso en segundo plano.

3
kāgii