ssh挂然后超时


8

我是Linux上ssh的新手。我在交换机上连接了两台计算机。第一个是192.168.1.2,第二个是192.168.1.3。当我使用ping命令时,我得到了答复,一切都很好,但是当我从第一台计算机上使用ssh时,ssh -v user@192.168.1.3它给了我,

OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.2 [192.168.1.2] port 22.
debug1: connect to address 192.168.1.2 port 22: Connection timed out

我在两台机器上都安装了ssh。关于如何解决此问题的任何想法?

Answers:


1

检查以下内容:

  • 端口22打开并且可以接收连接
  • 确保服务器上正在运行OpenSSH或其他SSH进程
  • 确保SSH配置文件已指定适当的值

10
man sshd_config |grep -i appropriate在我所有的Linux机器上都空了,而Solaris也空了
sehe 2011年

@sehe文件不在/ etc / ssh /下吗?

3
这使我即使躺在床上也<headdesk />。讽刺失败。我(嘲笑地)建议,该文档不包含有关适当(原文如此)设置的信息
sehe 2011年

谢谢大家,实际上端口22已关闭,因此我已插入此命令[code] iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 22 -j ACCEPT [/ code]
sam

谢谢@挪威,我面临着同样的问题。如何检查这些东西?我正在使用共享主机。谢谢。
阿布阿布扎比

3

故障排除提示:

  • 您可以ssh localhost在服务器上吗?
  • 允许用户吗?(AllowUsers设置)
  • 是否绑定到外部NIC?(寻找ListenAddress 0.0.0.0ListenAddress ::
  • 您在端口22上运行吗?(Port

    • 基本上检查一下/etc/ssh/sshd_config
  • 补充:您可以使用netstat -tlpn | grep 22它找出正在端口22上侦听哪些程序(如果有)(以root身份运行以查看进程名称)。

另外,请考虑使用显式端口连接代替ping(例如nmap -PN remote -p22,甚至只是telnet remote 22


1

我知道,这个问题是关于专用网络的,但是当我尝试通过Internet访问设备时,我得到了类似的输出。谷歌搜索后,我发现了这个问题;因此,即使它可能无法回答问题,其他人也会发现我的回答很有帮助。以我为例,事实证明我的ISP阻止了端口22 / TCP。

如果您尝试通过Internet访问设备,则基本上有五种可能性:

  1. 机器之间的网络连接可能无法进行。尝试ping服务器服务器的IP地址。如果您无法收到任何数据包,请尝试检查两台计算机上的网络连接。
  2. SSH服务器可能配置错误。尝试通过以下方式在本地(从同一设备和用户到同一设备和用户)SSH进入该设备:

    ssh localhost
    
  3. 如果服务器计算机通过路由器连接到Internet,则可能没有正确配置端口转发。因此,请检查路由器上的端口转发配置。

  4. 服务器计算机上的本地防火墙可能正在过滤传入的连接。尝试在防火墙的规则中允许22 / TCP端口上的传入连接,或者暂时完全禁用防火墙。
  5. 一个或两个ISP可能正在过滤掉连接。尝试将服务器上的端口更改为 2222,重新启动SSH服务器,然后使用新端口进行SSH。您可以通过-p以下命令中的选项在客户端计算机上指定端口:

    ssh USER@HOST -p PORT
    

0

首先,检查接收端是否正在运行SSH。登录到远程计算机,然后尝试ssh到localhost(ssh到您所在的同一台计算机)。

ssh -v myUserName@localhost

这将提示您输入密码,然后将您登录到同一台计算机。如果这不起作用,则表示该主机未启用SSH。在此服务器上启用“远程登录”应该可以解决该问题。

但是,如果您能够成功将目标服务器从ssh切换到自身,则问题可能出在中间。接下来要检查的是源主机上的防火墙,以确保它们没有阻止ssh。


1
我称手工放弃:Enabling "remote login"实际上并没有任何意义。解决了这个问题,还应启用“远程登录”,FWIW
sehe

0

如果已经安装了openssh-server,则可能是防火墙阻止了...假设您启用了ufw。

如果要从机器192.168.1.2转到目标机器192.168.1.3。在目标计算机上执行... Sudo ufw允许来自192.168.1.2。反之亦然


0

[这是我有史以来的第一个答案,如有需要,我要求进行建设性批评。谢谢。:)]

可能是因为您多次输入了错误的密码而被禁止进入目标计算机。

/etc/fail2ban/jail.local在目标计算机上编辑(192.168.1.3针对您的情况)。如果您可以ssh从另一台不受禁止的机器上访问此机器,则可以完成此操作。

完成线ignoreip[DEFAULT]与源机器的IP地址:

[DEFAULT]

ignoreip = 192.168.1.2

-1

检查以下内容:

1)运行nmap localhost并检查端口22的状态

2)在要通过ssh连接的第二台计算机上,执行ssh localhost

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.