当我跑步时
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 守护程序可能是您避免访问的唯一希望(或利用您拥有的任何远程重新安装选项)。