谷歌云服务器(GCE),自定义映像,SSH登录问题
我正在玩Google Compute Engine(GCE),因为我计划从Rackspace迁移云服务提供商(原因:GCE有很好的升级计划,价格优惠) 我对GCE没有什么问题,其中一个问题是默认情况下不支持Ubuntu os/image。但有一种替代方法可以在GCE中运行任何linux发行版,该方法用于上载自定义映像并从上载的映像创建实例(服务器) 我可以从我上传到GCE的Ubuntu图片中创建并运行这些实例。这只是在一般情况下运行ubuntu。我没有遇到任何问题,但谷歌的gcutil工具会提示输入ssh密码,并在GCE元数据中添加密钥,但只接受密码登录(那么为什么它会提示输入密码) 我想严格遵循谷歌的建议。但是在完成所有步骤之后,我无法通过SSH登录到我的服务器实例。我猜在安装时会发生这种情况:谷歌云服务器(GCE),自定义映像,SSH登录问题,ssh,ssh-keys,google-compute-engine,ubuntu-14.04,Ssh,Ssh Keys,Google Compute Engine,Ubuntu 14.04,我正在玩Google Compute Engine(GCE),因为我计划从Rackspace迁移云服务提供商(原因:GCE有很好的升级计划,价格优惠) 我对GCE没有什么问题,其中一个问题是默认情况下不支持Ubuntu os/image。但有一种替代方法可以在GCE中运行任何linux发行版,该方法用于上载自定义映像并从上载的映像创建实例(服务器) 我可以从我上传到GCE的Ubuntu图片中创建并运行这些实例。这只是在一般情况下运行ubuntu。我没有遇到任何问题,但谷歌的gcutil工具会提示
google-startup-scripts\u 1.1.2-1\u all.deb
,google-compute-daemon\u 1.1.2-1\u all.deb
&python-gcimagebundle\u 1.1.2-1\u 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
我无法从日志中找出答案,这是的输出。这里的关键是您的ssh客户端说“连接被拒绝”。这表明该IP地址确实有一台机器,但它不接受SSH连接。有几种可能的解释:
(1) 在安装GCE映像包之前,SSH允许连接。(2)我没有将任何iptable规则配置为新机器。(3)我反复检查了很多次GCE防火墙中是否有SSH条目,是的,默认情况下每个人都可以使用它。在应用GCE推荐的设置之前,新实例将正常运行,但一旦我安装了GCE映像包并重新启动实例,就会显示连接被拒绝错误。这很有趣,也很出乎意料。对于该实例,我将仔细查看
gcutil getserialportoutput
的输出;我希望它能提供一些线索来说明发生了什么。从日志中我还不完全清楚机器是否已经完成引导。你能从另一个GCE实例成功ping它吗?这很有趣。此时,我认为最好的办法是关闭实例,但保留磁盘。然后,从一个股票映像将磁盘装载到一个新实例上,并查看/var/log以查看是否有任何东西指示可能发生的情况。GCE SSH疑难解答指南中有很多关于如何执行此操作的信息: