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

当我跑

sudo do-release-upgrade 

在ssh上,我收到以下消息。

此会话似乎在ssh下运行。 不推荐
目前在ssh上执行升级,因为如果失败了
更难恢复。

如果继续,将在端口启动另一个ssh守护程序
 '9004'。
你想继续吗?

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

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

屏幕是允许机器上的持久终端的程序。 所以你可以开始一个屏幕会话,只要机器在那个屏幕会话上(它的历史,运行程序等)将继续运行,虽然没有一个用户在机器上。 它的设计初期是在X Server之前提供多窗口文本终端。 您可以使用APT安装它:

 sudo apt-get install screen 

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

@ 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不会自行恢复,这似乎很常见。

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

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

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