无法 SSH/gcloud 进入默认 Google 深度学习 VM

Unable to SSH/gcloud into default Google Deep Learning VM

我创建了一个新的 Google 深度学习 VM,除了不询问 GPU 外,保留所有默认值:

虚拟机实例已成功启动:

但我无法通过 SSH 进入:

尝试与 gcloud 一起使用时出现同样的问题(使用单击 SSH 右侧实例的向下箭头按钮时提供的命令):

ssh: connect to host 34.105.108.43 port 22: Connection timed out
ERROR: (gcloud.beta.compute.ssh) [/usr/bin/ssh] exited with return code [255].

为什么?


VM 实例详细信息:

为了连接到 VM 实例,您必须遵循 GCP 中的 guide,然后在 IAM 和管理下使用必要的授权设置角色。

原来 browser-based SSH 客户端和 browser-based gcloud 客户端被我的组织禁用了,这就是我无法访问虚拟机的原因。给我的原因是要允许 browser-based SSH,必须将虚拟机暴露给整个网络,因为 Google 不提供它们用于 browser-based 的 IP 列表SSH.

因此,您可以先使用 GCP Web 控制台上传自己的 SSH 密钥,然后通过本地 SSH 客户端通过 SSH 连接到 GCP 虚拟机。有关如何将本地 SSH 客户端与 GCP 结合使用的文档,请参阅 https://cloud.google.com/compute/docs/instances/connecting-advanced#linux-macos (mirror)。


由于文档解析起来有点乏味,这里是我 运行 在本地 Ubuntu 18.04 LTS x64 上上传我的 SSH 密钥并连接到 VM 的命令:

如果您还没有安装 gcloud

# https://cloud.google.com/sdk/docs/install#linux (<- go there to get the latest gcloud URL to download via curl):
sudo apt-get install -y curl
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-310.0.0-linux-x86_64.tar.gz
tar -xvf google-cloud-sdk-310.0.0-linux-x86_64.tar.gz./google-cloud-sdk/install.sh
./google-cloud-sdk/bin/gcloud init

安装 gcloud 后:

# Connect to gcloud
gcloud auth login
# Retrieve one's GCP "username"
gcloud compute os-login describe-profile
# The output will be "name: '[some large number, which is the username]'"
# Create a new SSH key
ssh-keygen -t rsa -f ~/.ssh/gcp001 -C USERNAME
chmod 400 ~/.ssh/gcp001
# if you want to view the public key: nano ~/.ssh/gcp001.pub
gcloud compute os-login ssh-keys add --key-file ~/.ssh/gcp001.pub
gcloud compute ssh --project PROJECT_ID --zone ZONE VM_NAME
# Note that PROJECT_ID can be viewed when running `gcloud auth login`, 
# which will output "Your current project has been set to: [PROJECT_ID]".

请做:

  • sudo gcloud compute config-ssh
  • gcloud auth login

登录您的 Gmail 帐户。接受 Google 云的访问权限。

如果尚未完成,请稍后设置项目:

  • gcloud config set project YOU-PROJECT-ID

运行 gcloud compute ssh 应有尽有。

如果您还有问题,请删除此:

  • rm .ssh/google_compute_engine

运行 gcloud compute ssh 再次 ,问题就解决了!