0

我正在使用 Google Compute Engine(GCE),因为我计划从 Rackspace 迁移云服务提供商(原因:GCE 有很好的升级计划和最优惠的价格)。

我对 GCE 几乎没有问题,其中之一是默认不支持 Ubuntu os/image。但是有另一种方法可以在 GCE 中运行任何 linux 发行版,称为从头开始构建图像以上传自定义图像并从上传的图像创建实例(服务器)。

我可以通过链接hagikuratakeshi.hatenablog.com从上传到 GCE 的 Ubuntu 映像创建和运行实例。一般来说,这只是运行 ubuntu。我没有遇到任何问题,但谷歌的 gcutil 工具提示输入 ssh 密码并在 GCE 元数据中添加密钥,但只接受密码登录(然后为什么提示输入密码)。

我想严格按照谷歌的建议从头开始构建图像。但是在完成所有步骤之后,我无法通过 SSH 登录到我的服务器实例。我想当我安装Google Compute Engine 映像包时会发生这种情况: google-startup-scripts_1.1.2-1_all.deb, google-compute-daemon_1.1.2-1_all.deb& python-gcimagebundle_1.1.2-1_all.deb。这些包/脚本在启动时对实例以及强烈推荐的 SSH 配置进行了一些更改。一旦我严格遵循链接或安装这些软件包,一旦实例重新启动,我就无法建立 SSH 连接。尝试连接时显示类似于以下错误消息:

test@machine1:~$ gcutil --service_version="v1" --project="mypro-555" ssh --zone="asia-east1-a" "server-instance-1"

INFO: Running command line: ssh o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/test/.ssh/google_compute_engine -A -p 22 test@101.167.xxx.xxx -
ssh: connect to host 101.167.xxx.xxx port 22: Connection refused

注意:用户帐户test在本地和 GCE 服务器上均可用且通用!

当我严格按照步骤操作时,我的主要问题是 SSH 连接。如果我上传新图像,然后按照推荐的步骤连接 SSH,一旦我重新启动实例,我将无法再次执行 SSH(或者)如果我在上传之前在上传的图像中设置了所有内容,则创建的实例将运行但我不能能够连接至少一个,错误是一样的。

有人将 GCE 与您的自定义图像一起使用吗?即使遵循推荐的设置,您是否允许连接?有人已经修复了这个 SSH 问题吗?请发表您的意见!

编辑 1

我无法从日志中弄清楚,这是gcutil getserialportoutput server-instance-1的输出。

4

1 回答 1

0

这里的关键是您的 ssh 客户端说“连接被拒绝”。这表明该 IP 地址确实有一台机器,但它不接受 SSH 连接。有几种可能的解释:

  1. ssh 守护进程没有运行,或者正在侦听错误的接口
  2. 您的实例配置了拒绝 SSH 流量的防火墙
  3. 允许 SSH 流量的 GCE 防火墙规则已被删除
于 2014-05-28T17:51:34.817 回答