4

伙计们。

GCP 在 gcloud、cloud shell 和本地机器 cloud SDK 中提供了多种 ssh-ing 方式。

虽然所有这些选项都很棒而且我一直在使用它们,但我通常更喜欢使用 .ssh/config 来缩短登录机器的过程。

例如,对于 EC2,您只需添加:

Host $name
    HostName $hostname
    User $username
    IdentityFile $pathtoFile

有没有办法为 GCP 虚拟机复制这个?

谢谢

4

2 回答 2

1

根据这个文档

如果您已通过 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'
于 2018-03-28T08:10:27.640 回答
0

如果您想通过 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文件

  1. bpa-ssh-key
  2. bpa-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 连接到任何实例。

于 2018-09-20T16:35:45.397 回答