通过 SSH 升级有什么风险?

C. *_*oss 99 upgrade server ssh

当我跑

sudo do-release-upgrade
Run Code Online (Sandbox Code Playgroud)

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

此会话似乎在 ssh 下运行。不推荐
当前通过 ssh 执行升级,因为万一失败
更难恢复。

如果继续,将在端口启动一个额外的 ssh 守护进程
'9004'。
你要继续吗?

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

jar*_*ndl 106

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

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

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

祝你好运。

此外,screen-sessiondo-release-upgrade自己启动是在 root 帐户下运行的,所以如果你自己的 screen-session 崩溃了,你将能够通过运行来恢复sudo screen -x,如果(由于某种原因)命令do-release-upgrade不能自行恢复,这似乎很常见。

  • 从 9.10 升级到 10.04 LTS(其中 `do-release-upgrade` 没有启动屏幕会话)我现在从 10.04 LTS 升级到 12.04 LTS,现在`do-release-upgrade` 现在自动启动屏幕会话。 (7认同)
  • sudo screen -x 救了我的命!谢谢。 (5认同)
  • 那为什么警告信息还在呢?听起来很不祥。 (5认同)
  • 所以基本上,`do-release-upgrade` 会事先处理好所有事情,然后:1) 你可以通过在重新登录后重新运行 `do-release-upgrade` 来从损坏的 ssh 重新连接 2) 你可以重新-通过`do-release-upgrade`开头指定的端口从失败的sshd升级中记录日志。是吗? (2认同)
  • 确保安装了 `screen`,因为它只有在安装后才能使用。您可能必须使用“apt-get install screen”来安装它。至少这是我从 Ubuntu 17.10 升级到 18.04 时意识到的。我第一次尝试时没有安装和使用 `screen`。我在下载之前停止了升级,安装了 `screen`,然后再次运行 `do-release-upgrade`。然后使用了`screen`。 (2认同)

Mar*_*ppi 67

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

Screen是一个允许在机器上使用持久终端的程序。因此,您可以启动一个屏幕会话,只要机器处于该屏幕会话(以及它的历史记录、正在运行的程序等)上,就会继续运行,尽管机器上没有任何用户。它被设计在初期提供了多窗口的文本终端前X服务器的日子。您可以使用 APT 安装它:

sudo apt-get install screen
Run Code Online (Sandbox Code Playgroud)

因此,您可以通过 ssh 连接到您的服务器、启动屏幕、启动升级过程,而不必担心升级 bing 会因为丢失 Internet 连接或计算机崩溃而失败。

  • 似乎`do-release-upgrade`(因为精确)正在自动执行`screen`。 (10认同)
  • screen 不再可用,出于某种原因,这似乎不适用于 TMUX。它返回此错误:=== 命令以退出状态 1 终止(2016 年 10 月 19 日星期三 21:14:13)=== (2认同)

sep*_*p2k 18

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

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