我增加了在 Google Cloud Platform 上运行的 VM 实例的磁盘大小。实例上没有进行任何其他更改,只是从 200 GB 简单更改为 400 GB。当我在进行更改后启动实例并尝试通过 PuTTY 上的无密码私钥 SSH 登录时,服务器拒绝了我的密钥,我也无法通过浏览器打开 SSH(它只是显示正在连接,然后无法连接,正在重试)。
从那时起,我重置了密钥,生成了新的公钥和私钥,检查了防火墙、OS-login,甚至运行了一些故障排除脚本,但都无济于事。将 enable-oslogin 设置为 true 后,PuTTY 一直要求我输入密码才能通过 SSH 密钥登录,而我从未设置过任何密码?我已将 oslogin 设置为 false,甚至将其从元数据中删除,但它仍然要求我输入我未设置的密码。
如果有人知道发生了什么,我会非常感激。非常感谢。
答案1
这个磁盘是您升级操作系统的驱动器还是另一个驱动器?如果是您的操作系统卷,那么可能权限/home/${USER}/.ssh/authorized_keys
已更改。如果这些权限混乱,那么您将无法使用公钥进行 SSH,并且必须暂时打开密码验证才能/etc/ssh/sshd_config
登录并更改权限。一旦被锁定,您就无能为力了,但如果有任何方法可以重新登录,请按照以下步骤恢复权限,以便您可以重新使用 SSH。此外,这假设您有 SSH 密钥/home/${USER}/.ssh
。
为了使 SSH 正常工作,该/home
目录需要由 root 拥有,并且掩码为 755:
chown root:root /home
chmod 755 /home
该/home/${USER}
目录需要由 700 拥有${USER}
并具有权限。
chown ${USER}:${USER} /home/${USER}
chmod 700 /home/${USER}
该/home/${USER}/.ssh
目录需要由 ${USER} 拥有并具有权限 700。
chown ${USER}:${USER} /home/${USER}/.ssh
chmod 700 /home/${USER}/.ssh
最后,文件 /home/${USER}/.ssh/authorized_keys 必须由 ${USER} 拥有,并具有权限 600
chown ${USER}:${USER} /home/${USER}/.ssh/authorized_keys
chmod 600 /home/${USER}/.ssh/authorized_keys
最后,尝试通过 SSH 进入您的实例:
ssh -i /path/to/pub/key ${USER}@${IP_ADDRESS}
当我不小心弄乱了 AWS 实例的权限时,这个方法救了我一命。以下是我在网上找到的有关您的问题的信息:
https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-ssh https://cloud.google.com/compute/docs/troubleshooting/troubleshoot-os-login