SSH 连接问题 - 允许从 LAN 连接但不允许从 WAN 连接

SSH 连接问题 - 允许从 LAN 连接但不允许从 WAN 连接

我尝试将我的 Arch Linux 安装设置为 SSH 主机,但问题如下:

我可以ssh localhost,它无法通过公钥登录并要求输入用户名和密码,但仍然可以登录。

当我尝试时,ssh my_wan_ip它给出了ssh_exchange_identification: Connection closed by remote host错误。我已经阅读了有关此错误的所有主题,但都没有帮助我。顺便说一句,刚刚确认,它来自ssh: connect to host my_dyndns_hostname port 22: Connection refused另一台机器(在我的网络之外,它有不同的 wan ip)。

sshd: ALL在“hosts.allow”和ALL:ALL“hosts.deny”中都设置了。我可以通过 ssh 连接到我自己的 PC,ping 我自己 PC,但我的 ssh 设置似乎是问题所在,当我尝试从 wan 进行 ssh 时,它给出了令人讨厌的错误。

/etc/ssh/ssh_config
/etc/ssh/sshd_config

最后,这里是 sshd 和 ssh 的调试输出:(我运行了 ssh 命令然后将输出带到 sshd 调试):

sshd 调试
ssh 调试

我可以根据您的需要编辑我的问题。如果需要更多信息,请咨询。顺便说一句,我没有运行 iptables。我有一个有线 dsl 调制解调器连接到华硕 wl-330gE 无线接入点,它们的防火墙都已禁用。我配置了 NAT,因此端口 22 指向我遇到此问题的 PC。

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

答案1

我注意到您的 ssh 客户端调试输出中有以下几行(第 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

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

答案2

下面几行可能非常具有误导性:

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

另一个答案建议:

那么,原因可能出在客户端计算机上的密钥上吗?尝试重新生成它们。

根据我的经验,我可以说这个问题可能是由服务器配置引起的,即使这些消息看起来完全是客户端密钥问题。当然,您也想检查您的客户端配置。但您这样做了,却发现没有任何变化。这表明问题不在于您的客户端计算机上的密钥(因此错误消息具有误导性)。

您应该查看服务器配置。

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

sudo nano /etc/sshd_config
AllowUsers yourname@*

还要检查拒绝主机,但就我而言,问题出在 sshd_config 中的 AllowUsers,它给出了同样误导性的错误消息。修复服务器即可解决问题,而无需修复客户端上的任何密钥。

相关内容