是否有特定的方法可以在 Google Compute Engine 上的机器上从 debian 7 更新到 debian 8?
虽然我可以使用 gcloud ssh 命令连接到机器,但更新后我无法使用浏览器上的 SSH 从控制台连接;我收到“无法连接,正在重试(1/3)...”错误。对于更新过程,我遵循 Debian 官方网站上的文档。
控制台日志上的错误是:instance-1 sshd[18651]: Connection closed by XX.XXX.XX.XX [preauth]
没有其他任何事情,我已经尝试重新启动机器。
因此,问题是: - 是否有针对将 debian 7 更新到 debian 8 的 Google Compute Engine 的具体文档? - 有人进行过更新、发现我的错误并解决了有关从浏览器 ssh 的问题吗?
谢谢
马可
答案1
首先,不建议就地升级操作系统。相反,你应该将应用程序部署到下一个版本的映像上。
此外,这个问题已经有一年了。Debian 7 Wheezy 不再受支持。
我能够在 Compute Engine 中将 Debian 7 升级到 Debian 8 Jessie。我只需在 /etc/apt/source.list 和 /etc/apt/source.list.d/* 中将“wheezy”替换为“jessie”,然后运行“apt-get dist-upgrade”。
有关从 7 升级到 8 的所有信息,请参阅 Debian Jessie 升级文档。https://www.debian.org/releases/jessie/amd64/release-notes/ch-upgrading.en.html。
我尝试了两种方法:
最新的标准 Debian 7 映像“debian-7-wheezy-v20160531”。它仍然可用,但已被弃用。
看起来它有效。如果你在某个项目上尝试,请小心:该图像已有 1.5 年历史,尚未收到安全更新。
-
它基本上可以正常工作,我注意到的是 /etc/hosts 文件缺少机器名称,主机名默认为“localhost”。我不确定为什么,但这仍然不会破坏 ssh。
关于sshd错误:
instance-1 sshd[18651]: Connection closed by XX.XXX.XX.XX [preauth]
这意味着 ssh 客户端在 SSH 预认证阶段关闭了连接。
这通常意味着 sshd 守护进程无法读取用户的 ~/.ssh/* 文件。此行上方的错误消息可能会带来更多信息,您也可以尝试在 ssh 命令中添加“-vv”。
如果问题仍然存在,我建议您按照故障排除指南中的“故障排除 SSH 错误”部分进行操作https://cloud.google.com/compute/docs/troubleshooting#ssherrors。