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