通过 SSH 升级有什么风险?

通过 SSH 升级有什么风险?

当我跑步时

sudo do-release-upgrade

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

此会话似乎在 ssh 下运行。不建议
目前无法通过 ssh 进行升级,因为如果发生故障
更加难以恢复。

如果继续,将在端口上启动一个附加 ssh 守护程序
‘9004’。
你想继续吗?

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

答案1

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

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

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

祝你好运。

此外,屏幕会话do-release-upgrade自行启动并在 root 帐户下运行,因此如果您自己的屏幕会话崩溃,您将能够通过运行来恢复sudo screen -x,如果(由于某种原因)命令do-release-upgrade无法自行恢复,这似乎很常见。

答案2

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

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

sudo apt-get install screen

因此,您可以通过 ssh 进入您的服务器,启动屏幕,启动升级过程,而不必担心由于丢失互联网连接或计算机崩溃而导致升级失败。

答案3

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

通过启动单独的 sshd(它不由 init 系统处理,因此在升级期间不会重新启动),可以确保即使新版本启动失败,旧版本的 sshd 仍将运行。因此,您仍然可以登录系统并查看导致守护进程中断的原因。

答案4

我这样做从来没有(到目前为止)遇到过问题,尽管我只用这种方法升级了大约六个盒子。只是如果出现问题,额外的 SSH 守护程序可能是您避免访问的唯一希望(或利用您拥有的任何远程重新安装选项)。

相关内容