如何解决SSH连接中的“连接拒绝”错误?

我家里有一台32位的Ubuntu Server 10.10。 我正在通过Putty从我的PC上建立SSH连接。

问题是,有时我能够无缝登录。 但是,有时它会给我一个这样的错误: Network error: Connection refused.

然后,我没有改变任何东西,尝试登录几次,等待一段时间再试一次。 有时我可以登录,有时我不能。 这对我来说似乎很随意。

我该怎么做才能解决这个问题?

编辑:

有时,Putty会出现Network error: Software caused connection abort显示login as:后, Network error: Software caused connection abort错误login as: text。

这是ping -t输出:

 Pinging 192.168.2.254 with 32 bytes of data: Reply from 192.168.2.254: bytes=32 time=6ms TTL=64 Reply from 192.168.2.254: bytes=32 time=65ms TTL=6 Reply from 192.168.2.254: bytes=32 time=88ms TTL=6 Reply from 192.168.2.254: bytes=32 time=1ms TTL=64 Reply from 192.168.2.254: bytes=32 time=3ms TTL=64 Reply from 192.168.2.254: bytes=32 time=1ms TTL=64 Reply from 192.168.2.254: bytes=32 time=1ms TTL=64 Reply from 192.168.2.254: bytes=32 time=1ms TTL=64 Reply from 192.168.2.254: bytes=32 time=1ms TTL=64 

我关闭了路由器的防火墙,现在一切似乎都有效。 除此之外,我仍然无法通过从我的电脑输入外部IP来进入我的网络服务器。

您必须在Linux上安装openssh-server才能使用。 获取Ubuntu的内部IP地址,并使用该IP在路由器的端口22(SSH)部分设置端口转发。 虽然如果您不打算从网络外部进行SSH,则不需要这样做。

以下是如何安装openssh-server:

 sudo apt-get install openssh-server openssh-client [ENTER PASSWORD] 

当我看到此SSH错误消息时,IP地址冲突被certificate是根本原因。

在阅读上面的答案后,我怀疑IP地址冲突,但需要certificate地址冲突是或不是问题。

这篇精彩的文章展示了如何使用arp-scan来查看两块硬件是否声称了相同的IP地址。

在我的情况下,服务器机器的静态IP地址为192.168.1.42,我使用arp-scan来检查该地址:

 $ sudo apt-get install arp-scan $ arp-scan -I eth0 -l | grep 192.168.1.42 192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown) 192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2) 

如上所示,果然发生了冲突。 然后我在没有grep的情况下运行arp-scan,发现.43可用,去编辑/etc/network/interfaces并将静态ip从.42更改为.43

对存在连接问题的IP地址使用arping 。 这将显示每个ping回复的MAC地址,并希望将取消屏蔽恶意MAC地址。

 arping 192.168.2.254 

您应检查DHCP服务器上的DHCP IP地址池,确保没有设备具有与DHCP池冲突的静态IP。

这些线索指向重复的IP:

  • ping ttl和往返时间看起来像2个不同的服务器
  • 间歇性断开而不重新启动

我有同样的问题,即使我有一个静态IP地址。 原来,我网络上的另一台服务器被分配了相同的(静态)IP地址。 (Duh。)所以看起来问题确实是由IP地址冲突引起的,但可能会有各种可能的方式发生。 如果您将自己设置为静态但仍有问题,请尝试关闭计算机并ping通地址。 如果您收到任何回复,请开始寻找其他可能具有相同地址的内容。

这看起来更像是网络设备的问题,而不是服务器本身。

检查/ var / log / messages是否为以太网链接上/下(或无线情况下的wlan)。 如果是这样,请尝试更换电缆。

我可以确认这个问题:这不是一个简单的连接问题。 以太网链路不会改变状态; 服务器可通过ping访问; ssh偶尔连接完美,然后看似随机不连接或现有的ssh会话丢弃。 这发生在Ubuntu 10.04和11.04上。 根据hheimbuerger的建议,我给服务器一个静态IP,这似乎解决了它。

解决方法:将适配器从DHCP更改为静态。

打开ssh config的文件:

 sudo nano /etc/ssh/ssh_config 

找到港口

 #port 22 

删除锐利的端口选项

然后通过ctrl + x保存文件并重新启动您的服务

 sudo service ssh restart 

如果你这样做,你会得到什么?

 grep 192.168.2.25 /etc/hosts.deny 

如果返回任何内容,则需要将其删除。

我有完全相同的问题,在我的情况下,它原来是一个IP地址冲突。 我的Ubuntu VM有一个动态地址,但另一台机器(在这种情况下是一部手机)有一个静态IP,分配给DHCP服务器不知道。

只需将DHCP服务器分配给Ubuntu VM的IP更改为修复了所有连接问题。

这主要是因为以下任何一个原因:

  1. 网络上有太多用户试图访问服务器
  2. 网络上的多台计算机与服务器具有相同的IP,从而导致IP冲突
  3. 错误的用户名或您的凭据已被撤销

您可能想要检查服务器上的iptables规则。 这听起来像是限制新SSH连接的规则。

下一个规则允许每分钟有5个新连接,如果超过此限制,新连接将在一段时间后被拒绝:

 -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT 

请参阅IPTables / Netfilter文档 ,滚动一下直至limit

arp-scan显示两个重复的设备,但是当我在Win8上运行高级IP扫描程序时,它们看起来都很好。 所以他们并不总是同意。

我设置路由器撤销所有租约,告诉它只给1小时租约。 会花时间看看它是否清理完毕。