在Google Compute Engine实例上丢失SSH

时间:2015-03-09 18:22:28

标签: ssh ubuntu-14.04 google-compute-engine syslog

我的公司正在将我们的运营转移到Google Cloud,我们在Google Compute Engine中运行了多个实例。我已经有3个实例(运行Ubuntu 14.04),现在在几周的一切正常工作后我失去了SSH能力。以下是尝试连接的多种方法的输出:

从一个会话到另一个会话的SSH(相同的内部IP):

ssh: connect to host 130.211.137.231 port 22: Connection refused

来自Google Dev Console的SSH:

We are unable to connect to the VM on port
22. Learn more about possible causes of this issue.

来自PuTTY客户端的SSH:Network error: Connection refused

此问题发生的最近时间,实例仍在运行。我有一个NFS共享目录,ftp文件被写入,并且它们仍在更新中。所以NFS仍然被挂载和导出,而cronjobs仍在运行。

从同一网络上的另一个实例运行nmap会产生以下结果:

vwadmin@vw-server:~$ nmap -Pn 130.211.137.231

Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-09 15:41 UTC
Nmap scan report for 231.137.211.130.bc.googleusercontent.com (130.211.137.231)
Host is up (0.0019s latency).
Not shown: 997 filtered ports
PORT     STATE  SERVICE
22/tcp   closed ssh
3389/tcp closed ms-wbt-server
8008/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 4.18 seconds
vwadmin@vw-server:~$
周五晚上的某个时候,SSH丢失了。星期六晚上,我创建了驱动器的快照以进行故障排除。看着日志文件,syslog和auth.log都在周五晚上停止写入(我猜测我们丢失了SSH的时间)。在系统日志中我应该寻找什么/什么可以阻止写入日志,关闭所有端口,但是允许NFS继续工作并且cronjobs运行良好?请记住,这是一个云环境,因此SSH是我进入实例本身的唯一途径,因此我现在所能做的就是查看快照中的日志。这个已经破了两次的特殊实例目前只运行少量lftp类型的cronjobs。

2 个答案:

答案 0 :(得分:0)

我遇到过这个问题。我发现的两个原因导致连接拒绝错误。

  1. 防火墙规则不正确: - 检查端口22的防火墙规则是否为您的计算引擎实例正确打开。尝试为您的实例提供唯一标记,然后将该标记粘贴到“Target tags”区域的端口22的防火墙规则中,然后保存。
  2. 私钥已过期(我不知道为什么会这样): - 为此尝试使用PuTTYgen生成新密钥,然后复制新生成的公钥并将其粘贴到“consol-> Compute Engine-> VM实例 - >(您的实例名称) - >编辑 - > SSH密钥“。确保取消选中“阻止项目范围的SSH密钥”字段并保存。 现在保存您的私钥并使用该私钥通过PuTTY进行SSH。
  3. 首先尝试方法1并检查......如果不起作用,则尝试方法2.

    希望它可以解决您的问题

答案 1 :(得分:0)

今天我在sysctl.conf上调试时发现了一些问题 (GcloudGcloud(GCE)上的VM框)

我的编辑

kernel.sem = 250 32000 100 128

kernel.shmmax = 17179869184
kernel.shmall = 4194304

GCloud默认

kernel.sem = 32000 1024000000 500 32000

kernel.shmall = 18446744073692774399

kernel.shmmax = 18446744073692774399

运行后

sysctl -p

没关系。

但是如果你重启系统,那么VM将在sysctl.conf上读取优化值,然后效果无法连接到VM。 (有时无法ping到该VM或无法ping到该VM)。

请关注gcloud(GCE)中sysctl.conf上的这些调整值。