我们经常删除并重新创建 Google Compute Engine 上的机器来拆除和关闭测试环境、执行故障转移测试等。
问题在于,GCE 总是在从映像或快照创建的每个新实例上重新创建 SSH 服务器密钥。
在执行 scp 或 ssh 操作时,有什么简单的方法可以获取静态 SSH 密钥或可在机器之间轻松接受的 SSH 密钥?
答案1
如果您仅将机器用于测试(ssh
当然,测试机器本身以外的其他东西)并且安全性没有问题(封闭环境),则可以将其作为安装脚本/kickstart/首次启动的一部分,以从某处提取密钥而不是生成自己的密钥(触发密钥生成的方式在不同的发行版之间有所不同,但您会发现 - RHEL 仅在第一次服务启动期间缺少密钥时才会创建它们)。
答案2
如果您的目录google_compute_engine
中已有私钥文件,则使用命令不应生成新密钥。但是,如果您使用不同的用户名或尝试从新创建的 VM 实例进行 SSH,则该命令将生成新的私钥/公钥以符合安全要求。/home/<username>/.ssh/
gcloud compute ssh <target instance>
gcloud compute ssh
您可以将私钥复制到特定机器或本地计算机,然后始终从那里进行 SSH。这样可以避免生成新密钥。
如果这是关于 SSH 主机密钥,那么您可以使用-o StrictHostKeyChecking=no
ssh 命令(OpenSSH)的选项来绕过对主机密钥真实性的检查。