it-swarm.cn

通过SSH升级的风险是什么?

我跑的时候

Sudo do-release-upgrade

通过ssh,我收到以下消息。

此会话似乎在ssh下运行。目前不推荐
对ssh进行升级,因为如果失败则
更难恢复。[。_____。] 
如果你继续,另外一个ssh守护进程将在
'9004'开始。[。_____。]你想继续吗?[。_____。]

通过ssh升级的真正风险是什么?附加的ssh守护程序如何帮助缓解这种情况?

73
C. Ross

我建议做的是在服务器上启动一个屏幕会话并在屏幕上运行升级 - 这样如果您的SSH会话丢失(无论出于何种原因),升级过程将不会停止。

屏幕 是一个允许机器上持久终端的程序。因此,您可以启动一个屏幕会话,只要机器在该屏幕会话上(并且它的历史记录,正在运行的程序等)将继续运行,尽管机器上没有任何用户。它是在早期设计的,以便在X Server之前提供一个多窗口文本终端。您可以使用APT安装它:

Sudo apt-get install screen

因此,您可以ssh进入您的服务器,启动屏幕,启动升级过程,而不必担心因为您丢失了Internet连接或计算机崩溃而导致的升级。

55
Marco Ceppi

@ Marco-Ceppi的解决方案已经集成到do-release-upgrade中。

当您运行do-release-upgrade时,它会自动启动一个屏幕会话。如果您的ssh会话断开连接,则可以继续安装。您所要做的就是打开一个新的ssh会话,然后再次运行do-release-upgrade。它将重新连接到以前的安装。

@ sepp2k指出的第二个风险是你的sshd服务器可能需要升级,它可能无法正确重启。因此,升级程序在指定的端口运行第二个deamon。在恢复之前,您应检查网络配置以确保您可以通过此端口进行访问。

祝好运。

此外,屏幕会话do-release-upgrade单独启动是在root帐户下运行的,所以如果你自己的屏幕会话崩溃,你将能够通过运行Sudo screen -x来恢复,如果(由于某种原因)命令do-release-upgrade没有恢复它它本身似乎很常见。

83
jarondl

如果在升级过程中安装了新版本的ssh守护程序,则将重新启动该守护程序。如果由于某种原因更新破坏了守护程序,它将无法再次启动,您无法再登录到该计算机。

通过启动一个单独的sshd,它不由init系统处理,因此在升级过程中不会重新启动,即使新版本无法启动,也可以确保旧版本的sshd仍然可以运行。因此,您仍然可以登录系统并查看导致守护程序崩溃的原因。

16
sepp2k

我从来没有(但)做过这样的问题,虽然我只用这样的方式升级了六个左右的盒子。只是如果出现问题,额外的SSH守护程序可能是您避免访问(或使用您拥有的任何远程重新安装选项)的唯一希望。

3
Cry Havok