¿Cuál es el riesgo de actualizar sobre SSH?

75

Cuando corro

sudo do-release-upgrade

sobre ssh, recibo el siguiente mensaje.

Esta sesión parece estar ejecutándose bajo ssh. No es recomendable
para realizar una actualización sobre ssh actualmente porque en caso de falla
Es más difícil de recuperar.

Si continúa, se iniciará un demonio ssh adicional en el puerto
«9004».
¿Quieres continuar?

¿Cuál es el riesgo real de actualizar sobre ssh? ¿Cómo ayuda el demonio ssh adicional a mitigar esto?

Cruzar
fuente

Respuestas:

56

Lo que recomendaría hacer es iniciar una sesión de pantalla en el servidor y ejecutar la actualización en pantalla, de esa manera si su sesión SSH cae (por cualquier razón) el proceso de actualización no se detendrá.

Screen es un programa que permite terminales persistentes en una máquina. Por lo tanto, puede iniciar una sesión de pantalla y mientras la máquina esté en esa sesión de pantalla (y su historial, ejecutar programas, etc.) continuará funcionando aunque no haya ningún usuario en la máquina. Fue diseñado en los primeros días para proporcionar un terminal de texto de múltiples ventanas antes de los días de X Server. Puedes instalarlo usando APT:

sudo apt-get install screen

Para que pueda ingresar a su servidor, iniciar la pantalla, iniciar el proceso de actualización y no tener que preocuparse por la actualización fallida porque ha perdido la conexión a Internet o su computadora se ha bloqueado.

Marco Ceppi
fuente
1
La pantalla es una excelente herramienta para esta situación.
Ryan Thompson
77
Parece que do-release-upgrade(ya que precisa) se está ejecutando automáticamente screen.
manu
2
La pantalla ya no está disponible, y esto no parece funcionar con TMUX por alguna razón. Devuelve este error: === El comando finalizó con el estado de salida 1 (miércoles 19 de octubre 21:14:13 2016) ===
Gman Smith
screen -dmS do-release-upgrade-> screen -rpara cambiar a la pantalla de ejecución -> Ctrl + A, Ctrl + D para dejar la pantalla ejecutándose en segundo plano y volver a la pantalla principal
Ryan Allen
83

La solución de @ Marco-Ceppi ya está integrada do-release-upgrade.

Cuando lo ejecuta do-release-upgrade, inicia una sesión de pantalla automáticamente. Si su sesión ssh se desconecta, puede reanudar la instalación. Todo lo que tiene que hacer es abrir una nueva sesión ssh y ejecutar de do-release-upgradenuevo. Se volverá a conectar a su instalación anterior.

Un segundo riesgo, señalado por @ sepp2k es que su servidor sshd podría necesitar una actualización, y tal vez no podría reiniciarse correctamente. Por lo tanto, el programa de actualización ejecuta un segundo demonio, en el puerto especificado. Debe verificar la configuración de su red para asegurarse de tener acceso a través de este puerto, antes de continuar.

Buena suerte.

Además, la sesión de pantalla do-release-upgradecomienza por sí misma se ejecuta bajo la cuenta raíz, por lo que si su propia sesión de pantalla falla, podrá recuperarse ejecutando sudo screen -x, si (por alguna razón) el comando do-release-upgradeno lo recupera por sí mismo, que parece ser común

jarondl
fuente
1
¿Sabes de qué versión de Ubuntu ha sido este el caso? Estoy tratando de actualizar desde 9.10 y después de comenzar la actualización ( sudo do-release-upgrade) y responder "Sí", puedo conectarme a ssh en el puerto 9004 pero no hay screensesiones en la lista al intentarlo sudo screen -list . (PD: todavía no he pasado la etapa de descarga)
Mgd
77
Después de actualizar de 9.10 a 10.04 LTS (donde do-release-upgradeno comenzó una sesión de pantalla) ahora estoy actualizando de 10.04 LTS a 12.04 LTS y ahora do-release-upgradeahora inicia una sesión de pantalla automáticamente.
mgd
2
Básicamente, do-release-upgradecuide todo de antemano, luego: 1) puede volver a conectarse desde un ssh roto volviendo a ejecutar do-release-upgradedespués de volver a iniciar sesión y 2) puede volver a iniciar sesión desde una actualización de sshd fallida a través del puerto especificado al principio mediante do-release-upgrade. Es asi ?
Juh_
55
sudo screen -x me salvó la vida! Gracias.
Felipe
44
Entonces, ¿por qué el mensaje de advertencia sigue ahí? Suena muy siniestro.
Jahmic
17

Si se instala una nueva versión del demonio ssh como parte de la actualización, el demonio se reiniciará. Si la actualización rompe el demonio por alguna razón, no podría iniciarse nuevamente y ya no tendría forma de iniciar sesión en la máquina.

Al iniciar un sshd separado, que no es manejado por el sistema init y, por lo tanto, no se reiniciará durante la actualización, se garantiza que la versión anterior de sshd se seguirá ejecutando incluso si la nueva versión no se inicia. Por lo tanto, aún puede iniciar sesión en el sistema y ver qué causó la ruptura del demonio.

sepp2k
fuente
1
Creo que es más relevante que, cuando se reinicia el demonio, su actualización probablemente terminará sin terminar, porque el proceso se está ejecutando en la sesión ssh.
Malabarba
3

Nunca (todavía) tuve problemas para hacer eso, aunque solo actualicé media docena de cajas de esa manera. Es solo que si algo sale mal, el demonio SSH adicional puede ser su única esperanza de evitar una visita (o hacer uso de las opciones de reinstalación remota que tenga).

Llora Havok
fuente