我一直在使用GCP控制台连接到云实例,并希望通过powershell切换为使用SSH,因为这似乎可以保持更长的持久性。通过云外壳将我的公共密钥转移到authorized_key文件中似乎是临时的,因为一旦云外壳断开连接,该文件就不会持久。我尝试使用os-login,但是生成的用户与通过Cloud Shell使用的用户完全不同(Cloud Shell创建用户:myname
,而gcloud创建用户:myname_domain_com
。通过gcloud登录时,有一种方法可以继续使用由Cloud Shell创建的配置文件。我在控制台和gcloud myname@domain.com
中都使用相同的电子邮件和帐户。另一种方法是从gcloud重新开始,会很痛苦的。
答案 0 :(得分:1)
如果您要SSH到谷歌云项目的其他实例(从Mac或Linux),请执行以下操作:
第1步:安装不带密码的SSH密钥
使用以下命令在Mac上生成密钥
ssh-keygen -t rsa -f〜/ .ssh / -C 例如,私钥名称可以是bpa-ssh-key。它将在〜/ .ssh目录中创建两个具有以下名称的文件
bpa-ssh-key bpa-ssh-key.pub 第2步。更新GCP项目上的公钥
转到Google Cloud Console,选择您的项目,然后
VMInstances-> Metadata-> SSH Keys-> Edit-> Add Item
在此处剪切并粘贴bpa-ssh-key.pub的内容(来自Mac),然后保存
重置VM实例(如果正在运行)
第3步。在Mac上的〜/ .ssh下编辑配置文件。编辑〜/ .ssh / config以添加以下行(如果尚不存在的话)
主机* PubKeyAuthentication是 IdentityFile〜/ .ssh / bpa-ssh-key 步骤4. SSH到GCP实例
ssh用户名@ gcloud-externalip 它应该在gcloud实例上创建SSH shell而不要求输入密码(因为您已经创建了没有密码的RSA / SSH密钥)。
由于元数据在同一项目下的所有实例之间都是通用的,因此您可以通过选择gcloud实例的相应外部IP,将SSH无缝缝入任何实例。