无法 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
再次 ,问题就解决了!
我创建了一个新的 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
再次 ,问题就解决了!