SSH连接问题 – 允许从LAN而不是WAN

我试图将我的Arch Linux安装设置为SSH主机,但是这里是这样的:

我可以ssh localhost ,它无法通过公钥login,并要求input用户名和密码,但仍然能够login。

当我尝试ssh my_wan_ip它给ssh_exchange_identification: Connection closed by remote host错误ssh_exchange_identification: Connection closed by remote host 。 我已经阅读了关于这个错误的所有主题,没有任何帮助。 顺便说一句,刚刚确认,它给ssh: connect to host my_dyndns_hostname port 22: Connection refused从另一台机器(我的networking外,它有不同的WAN IP)。

我有sshd: ALL在“hosts.allow” ALL:ALL在“hosts.deny”。 我能够通过SSH连接到我自己的电脑,ping我自己的电脑,但我的SSH设置似乎是问题,当我尝试从WAN的ssh给出了这个恼人的错误。

的/ etc / SSH / ssh_config中
的/ etc / SSH / sshd_config中

最后,这里是sshd和ssh的debugging输出:(我运行了ssh命令,之后我把输出传给sshddebugging):

sshddebugging
sshdebugging

我可以根据你的需要编辑我的问题。 只是要求提供更多的信息。 顺便说一句,我没有运行iptables。 我有一个电缆dsl调制解调器连接到一个华硕wl-330gE无线接入点,他们都禁用了他们的防火墙。 我configuration了NAT,所以端口22是针对我有这个麻烦的电脑。

任何帮助表示感谢,谢谢..

我注意到你的SSH客户端debugging输出(第28-29行)中的这些行:

 debug3: Incorrect RSA1 identifier debug3: Could not load "/home/kerem/.ssh/id_dsa" as a RSA1 public key 

那么,原因可能是你的客户机上的密钥? 尝试以这种方式重新生成它们:

 ssh-keygen -t rsa ssh-keygen -t dsa 

我也会备份旧的。 以防万一。

以下几行很容易让人误解:

 debug3: Incorrect RSA1 identifier debug3: Could not load "/home/kerem/.ssh/id_dsa" as a RSA1 public key 

另一个答案表明:

那么,原因可能是你的客户机上的密钥? 尝试重新生成它们。

从经验来看,我可以说这个问题可能是由服务器configuration引起的,即使这些消息使得它看起来像是严格的客户端关键问题。 当然,你也想检查你的客户端configuration。 但是你做到了,注意到没有任何改变。 这表明问题不是您的客户端机器上的密钥(因此错误信息是误导性的)。

你应该看看服务器configuration。

例如,我发现如果您的用户被服务器上的ssh config所允许,ssh客户端会给出完全相同(误导性)的错误消息。 如果您不允许所有用户,请检查以下内容:

 sudo nano /etc/sshd_config AllowUsers yourname@* 

另外检查denyhosts,但在我的情况下,问题是sshd_config AllowUsers,它给了这个相同的误导性的错误信息。 修复服务器解决了问题,而无需修复客户端上的任何键。