无法通过ssh连接login到服务器

通过端口22通过ssh连接到服务器,并决定使用以下命令终止与root用户连接的所有用户:

pkill -9 -u root 

现在,当我尝试以[email protected]时,我收到消息:

 ssh: connect to host 190.169.94.56 port 22: Connection refused 

我确定SSH确实在端口22上运行。在服务器上,我运行:

  netstat -untap | grep 190.169.94.56 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 190.169.94.9:41267 190.169.94.56:22 ESTABLISHED 29673/ssh 

我做了ping服务器190.169.94.56和正确的响应:

 ping 190.169.94.56 PING 190.169.94.56 (190.169.94.56) 56(84) bytes of data. 64 bytes from 190.169.94.56: icmp_seq=1 ttl=64 time=0.524 ms 64 bytes from 190.169.94.56: icmp_seq=2 ttl=64 time=0.454 ms 64 bytes from 190.169.94.56: icmp_seq=3 ttl=64 time=0.423 ms 64 bytes from 190.169.94.56: icmp_seq=4 ttl=64 time=0.419 ms --- 190.169.94.56 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3000ms rtt min/avg/max/mdev = 0.419/0.455/0.524/0.042 ms 

我试图改变端口,并获得相同的结果。 我怎样才能再次连接到它? 这是一个Debian机器,以防万一。

要检查它是否正在运行,您将不得不运行netstat -tnpl | grep :22 netstat -tnpl | grep :22ps aux | grep sshd ps aux | grep sshd 。 即使您停止连接,SSHD也会保持连接处于打开状态,以便在重新启动sshd_config之前,如果发生错误,则不会失去对服务器的控制权。

编辑:

我承认只有现在我看到了你的pkill -u root -9命令。 这是非常错误的,我会告诉你实际上重新启动你的服务器,因为你杀了重要的系统进程(如日志守护进程等)。

如果你的目标只是断开所有连接的用户与root用户,那么pkill是错误的命令。 pkill停止指定用户拥有的每个进程,但并不仅限于login用户。

你应该在拒绝连接的服务器上使用@Florin Asavoiae的命令来检查正在运行的进程,然后使用/etc/init.d/ssh start来启动sshd

如果您可以通过中间服务器创build到190.169.94.56新SSH连接,那么还有一些其他问题正在进行,可能是阻止stream量的防火墙。

在Linux系统上运行的有两种不同的sshd :有一个以master身份运行的“master”sshd,它监听新的连接,并且有用户级别的sshd,它以用户id身份运行,当sshd连接build立并且用户被authentication。 你用你的pkill命令做的是杀死主sshd,但不杀死你已经运行的用户级sshd。 要解决这个问题,可以在运行pkill的主机上将用户(su)切换为root,然后执行以下命令: service sshd restart