伙计们。
GCP 在 gcloud、cloud shell 和本地机器 cloud SDK 中提供了多种 ssh-ing 方式。
虽然所有这些选项都很棒而且我一直在使用它们,但我通常更喜欢使用 .ssh/config 来缩短登录机器的过程。
例如,对于 EC2,您只需添加:
Host $name
HostName $hostname
User $username
IdentityFile $pathtoFile
有没有办法为 GCP 虚拟机复制这个?
谢谢
伙计们。
GCP 在 gcloud、cloud shell 和本地机器 cloud SDK 中提供了多种 ssh-ing 方式。
虽然所有这些选项都很棒而且我一直在使用它们,但我通常更喜欢使用 .ssh/config 来缩短登录机器的过程。
例如,对于 EC2,您只需添加:
Host $name
HostName $hostname
User $username
IdentityFile $pathtoFile
有没有办法为 GCP 虚拟机复制这个?
谢谢
根据这个文档
如果您已通过 gcloud 工具连接到实例,则您的密钥已生成并应用于您的项目或实例。密钥文件位于以下位置:
- Linux 和 macOS
- 公钥:$HOME/.ssh/google_compute_engine.pub
- 私钥:$HOME/.ssh/google_compute_engine
- 视窗
- 公钥:C:\Users[USERNAME].ssh\google_compute_engine.pub
- 私钥:C:\Users[USERNAME].ssh\google_compute_engine
-i您可以在典型或.ssh/config配置文件中使用密钥。
或者干脆做
ssh-add ~/.ssh/google_compute_engine
将身份添加到您的 ssh 代理。
PS> 我见过人们为 ssh 命令创建别名,例如
alias gce='gcloud compute ssh'
如果您想通过 SSH 连接到谷歌云项目的不同实例(来自 mac 或 Linux),请执行以下操作:
步骤 1.无需密码即可安装 SSH 密钥
使用以下命令在您的 Mac 上生成密钥
ssh-keygen -t rsa -f ~/.ssh/<private-key-name> -C <your gcloud username>
例如private-key-name可以bpa-ssh-key。它将在目录中创建两个具有以下名称的~/.ssh文件
bpa-ssh-keybpa-ssh-key.pub第 2 步:更新 GCP 项目的公钥
转到 Google Cloud Console,选择您的项目,然后
VMInstances->元数据->SSH密钥->编辑->添加项目
在此处剪切并粘贴bpa-ssh-key.pub(来自您的 Mac)的内容,然后保存
如果 VM 实例正在运行,请重置它
步骤 3.在您的 Mac 上编辑config文件编辑以添加以下行(如果尚未存在)~/.ssh~/.ssh/config
Host *
PubKeyAuthentication yes
IdentityFile ~/.ssh/bpa-ssh-key
步骤 4. SSH 到 GCP 实例
ssh username@gcloud-externalip
它应该在 gcloud 实例上创建一个不要求输入密码的 SSH shell(因为您已经创建了没有密码的 RSA/SSH 密钥)。
由于元数据在同一项目下的所有实例中都是通用的,因此您可以通过选择 gcloud 实例的相应外部 IP 无缝地通过 SSH 连接到任何实例。