【发布时间】:2014-03-19 19:37:35
【问题描述】:
我在使用 ssh 登录从自定义映像创建的 VM 时遇到问题。
我按照creating an image from an existing GCE instance 的步骤操作。
我已成功创建图像,将其上传到 Google Cloud Storage 并将其作为图像添加到我的项目中,但是当我尝试连接到新图像时,我收到“连接被拒绝”。
我可以看到新映像在其他端口上运行的其他应用程序,因此似乎只有 ssh 受到影响。
我做的步骤如下:
...create an image from existing GCE instance (one I can log into fine via ssh)..then:
gcutil --project="river-ex-217" addimage example2 http://storage.googleapis.com/example-image/f41aca6887c339afb0.image.tar.gz
gcutil --project="river-ex-217" addinstance --image=example2 --machinetype=n1-standard-1 anothervm
gcutil --service_version="v1" --project="river-ex-217" ssh --zone="europe-west1-a" "anothervm"
哪些输出:
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/mark1/.ssh/google_compute_engine -A -p 22 mark1@23.251.133.2 --
ssh: connect to host 23.251.133.2 port 22: Connection refused
我已尝试按照另一个 SO 答案中的建议删除 sshKeys 元数据,然后重新连接这样做:
INFO: Updated project with new ssh key. It can take several minutes for the instance to pick up the key.
INFO: Waiting 120 seconds before attempting to connect.
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/mark1/.ssh/google_compute_engine -A -p 22 mark1@23.251.133.2 --
ssh: connect to host 23.251.133.2 port 22: Connection refused
然后我在另一个区域尝试第一个实例,它与新密钥一起工作正常:
gcutil --service_version="v1" --project="river-ex-217" ssh --zone="europe-west1-b" "image1"
两个实例都在同一个“默认”网络上运行,端口 22 运行,并且 ssh 适用于创建映像的第一个实例。
我在另一个实例和我的本地机器上尝试了 nc 命令,它没有显示输出:
nc 23.251.133.2 22
...而原始 VM 的 ip 显示此输出:
nc 192.157.29.255 22
SSH-2.0-OpenSSH_6.0p1 Debian-4
我尝试重新制作图像并重新添加实例,没有区别。
我已经尝试登录到第一个实例,并将用户切换到该机器上的一个(应该与第二台机器相同?),然后从那里 ssh。
WARNING: You don't have an ssh key for Google Compute Engine. Creating one now...
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
INFO: Updated project with new ssh key. It can take several minutes for the instance to pick up the key.
INFO: Waiting 300 seconds before attempting to connect.
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/mark/.ssh/google_compute_engine -A -p 22 mark@23.251.133.2 -- --zone=europe-west1-a
ssh: connect to host 23.251.133.2 port 22: Connection refused
我没有想法,非常感谢任何帮助 :) 令人抓狂的是,我可以看到新 VM 已经准备好应用程序,我只需要向它添加一些文件并设置一些 cronjobs。我想我可以做这个预映像制作,但我希望能够在以后登录并修改它,而不需要每次都花费 1 小时来创建映像和启动新实例。
您忠实的, 标记
【问题讨论】:
-
遇到同样的问题。
-
我也在 GoogleGroup 中发帖,一个 Google 人员正在查看它,使用“gcutil getserialportoutput
”的输出来帮助追踪它 -
我最终只是删除了我的永久磁盘并重新开始:/ 幸运的是我们有一个非常好的 create_dev_env 脚本,否则这真的不是一个选择。
-
请问您的实例上安装了什么?我有 R、Rstudio、Shiny、Apache。谷歌支持正在调查它,看看这是否是一个问题。另外,您在登录该项目的 Google API 控制台时遇到问题吗?我无法登录并出现错误。
-
我的完整堆栈是 Redis/Postgres/Flask/Tornado/Boostrap 和一堆 fortran(scipy、numpy、sklearn、skimage)。登录 API 控制台没有任何问题。