我在 Google Cloud/Compute Engine 上安装了 Ubuntu 服务器,运行起来没有任何问题。我可以从命令行 ssh 进入它,也可以从 Google Cloud 仪表板控制台 ssh 进入它。
当我拍摄快照来克隆服务器时,我无法通过 ssh 进入新的克隆。ssh 守护进程似乎没有在监听。我甚至无法从 Google Cloud 仪表板通过 ssh 进入它。
有人知道为什么吗?
从串行控制台(注意-我在粘贴中编辑了 sha256):
Mar 20 20:16:19 qa-for-work cloud-init[1042]: Generating public/private ed25519 key pair.
Mar 20 20:16:19 qa-for-work cloud-init[1042]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
cloud-init[1042]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
Mar 20 20:16:20 qa-for-work cloud-init[1042]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
[ 110.667373] cloud-init[1042]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
Mar 20 20:16:20 qa-for-work cloud-init[1042]: The key fingerprint is:
[ 110.667475] cloud-init[1042]: The key fingerprint is:
Mar 20 20:16:20 qa-for-work cloud-init[1042]: SHA256:u6ros 4MQtfpO5GM root@qa-for-work
[ 110.667560] cloud-init[1042]: SHA256:u6ros 1GtaVy4MQtfpO5GM root@qa-for-work
Mar 20 20:16:20 qa-for-work cloud-init[1042]: The key's randomart image is:
[ 110.667644] cloud-init[1042]: The key's randomart image is:
Mar 20 20:16:20 qa-for-work cloud-init[1042]: +--[ED25519 256]--+
[ 110.667775] cloud-init[1042]: +--[ED25519 256]--+
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o*o..=+o... |
[ 110.667864] cloud-init[1042]: | o*o..=+o... |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o.o.o.+... |
[ 110.667939] cloud-init[1042]: | o.o.o.+... |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o . ...o . |
[ 110.668037] cloud-init[1042]: | o . ...o . |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | = . .. + |
[ 110.668116] cloud-init[1042]: | = . .. + |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | + = o S . |
[ 110.668192] cloud-init[1042]: | + = o S . |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o + o + . |
[ 110.668275] cloud-init[1042]: | o + o + . |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: |o + o E |
[ 110.668349] cloud-init[1042]: |o + o E |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: |.*.+ . + o |
[ 110.668503] cloud-init[1042]: |.*.+ . + o |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: |ooB+o...o |
[ 110.668596] cloud-init[1042]: |ooB+o...o |
Mar 20 20:16:20 qa-for-work systemd[1]: Started Initial cloud-init job (metadata service crawler).
Mar 20 20:16:20 qa-for-work cloud-init[1042]: +----[SHA256]-----+
[ 110.668946] cloud-init[1042]: +----[SHA256]-----+
Mar 20 20:16:20 qa-for-work ntpdate[1023]: adjust time server 169.254.169.254 offset 0.361638 sec
Mar 20 20:16:20 qa-for-work systemd[1]: Reached target Network is Online.
Mar 20 20:16:20 qa-for-work systemd[1]: Reached target Cloud-config availability.
Mar 20 20:16:20 qa-for-work systemd[1]: Startup finished in 7.356s (kernel) + 1min 42.350s (userspace) = 1min 49.706s.
答案1
问题是我在原始实例上有一个附加磁盘。
解决方案是注释掉附加磁盘的安装/etc/fstab
。
如果未安装非 root 安装点,则正常的 Linux 系统将继续启动并运行 ssh。串行控制台中没有错误消息表明此情况。
尽管谷歌云仍然是我最喜欢的云,但这是他们的一个重大失败。
答案2
如果新实例是从源实例的快照创建的,则从快照生成的新实例上的 sshd 配置应该与源实例上的配置没有什么不同。
当您尝试从 Cloud Shell 进行 SSH 时,您收到的错误消息是什么?
$ gcloud compute ssh INSTANCE_NAME
当您拍摄快照时,它是磁盘的快照,并不包含有关源机器的其他方面的任何信息。
您从快照创建的新实例是否可能未分配与源实例相同的网络标签(这可能会阻止端口 22 访问新实例)?我认为这绝对值得检查。
另外,确保您已为新机器分配了外部 IP 地址。
编辑:
我添加了一些与海报更新信息相关的附加信息,这些信息涉及无效 fstab 条目影响实例的启动(从而影响对实例的 SSH 访问)。
有一些有用的信息这里关于将 [NOFAIL_OPTION] 添加到 fstab 条目,这是一个变量,用于指定如果操作系统在启动时无法挂载永久磁盘,它应该做什么。这可用于防止与无效 fstab 条目相关的启动问题。