通过SSH升级有什么风险?


75

当我跑步

sudo do-release-upgrade

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

该会话似乎正在ssh下运行。不推荐
当前通过ssh进行升级,因为如果失败
很难恢复。

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

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

Answers:


56

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

屏幕是一个程序,可以在机器上提供永久性终端。因此,您可以启动一个屏幕会话,并且只要机器上没有该用户,只要该计算机在该屏幕会话上(及其历史记录,正在运行的程序等)就可以继续运行。它被设计在初期提供前X服务器的天,多窗口的文本终端。您可以使用APT安装它:

sudo apt-get install screen

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


1
屏幕是解决这种情况的绝佳工具。
瑞安·汤普森

7
似乎do-release-upgrade(因为精确)正在自动执行screen
manu 2015年

2
屏幕不再可用,并且由于某些原因,这似乎不适用于TMUX。它返回此错误:===命令以退出状态1终止(2016年10月19日星期三21:14:13)===
Gman Smith

screen -dmS do-release-upgrade-> screen -r切换至运行屏幕-> Ctrl + A,Ctrl + D使屏幕在后台运行,然后返回主屏幕
Ryan Allen

83

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

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

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

祝好运。

此外,screen-session do-release-upgrade本身是在root帐户下运行的,因此,如果您自己的screen-session崩溃,则您可以通过运行进行恢复sudo screen -x,如果(由于某种原因)该命令do-release-upgrade不能自行恢复它,这似乎很常见。


1
您知道从哪个版本的Ubuntu开始吗?我正在尝试从9.10升级,并且在开始升级(sudo do-release-upgrade)并回答“是”之后,我可以在端口9004上连接到ssh,但是screen尝试时没有列出会话sudo screen -list 。(PS我还没有结束下载阶段。)
mgd 2012年

7
从9.10 LTS升级到10.04 LTS(do-release-upgrade未启动屏幕会话)后,我现在从10.04 LTS升级到12.04 LTS,现在do-release-upgrade现在自动启动屏幕会话。
mgd 2012年

2
因此,基本上,do-release-upgrade请先做好一切准备,然后:1)您可以do-release-upgrade在重新登录后通过重新运行从损坏的ssh重新连接,以及2)您可以通过开头指定的端口从失败的sshd升级重新登录do-release-upgrade。是吗
Juh_ 2014年

5
sudo screen -x救了我的命!谢谢。
费利佩

4
那么为什么警告消息仍然存在?听起来很不祥。
Jahmic '16

17

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

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


1
我认为,更重要的是,重新启动守护程序时,升级过程可能会终止而未完成,因为该进程正在ssh会话上运行。
马拉巴巴

3

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.