在 Google Cloud VM 有个不能算是问题的烦人事情 – OS Login,它会自动的更新用户目录下 .ssh/authorized_keys
文件,即便这个文件是用户自己创建的。要解决这个问题有几个办法。
禁止 OS login(不建议)
编辑 vm 的元信息,即点击 vm 的名字进入到详情页面,点击顶部的编辑后,找到元信息项,然后增加一组键值,键为 enable-oslogin,值为 false。如果已经存在 enable-oslogin 则将它的值改成 false 即可。记得重启 vm。
不建议的原因是,因为它更安全,通过 Google Cloud IAM 控制 SSH 密钥的访问权限,更适合多用户和多实例的场景,还可以避免因手动错误导致的密钥丢失或覆盖。
配置 Google Cloud 的 SSH 密钥
进入到 Google Cloud Compute Engine 的元数据项,在 ssh 密钥标签下增加一个项,将从 id_rsa.pub
获取到的内容填写在这里即可。当然如果本地配置了 Google Cloud 的 SDK,也可以通过命令执行
gcloud compute os-login ssh-keys add \
--key-file=id_rsa.pub \
--project=PROJECT_ID
其实 OS Login 在众多云服务商处还是蛮广泛使用的,处理方法大差不离。
> 可在 Twitter/X 上评论该篇文章或在下面留言(需要有 GitHub 账号)