我尝试将我的 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 调试):
我可以根据您的需要编辑我的问题。如果需要更多信息,请咨询。顺便说一句,我没有运行 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,它给出了同样误导性的错误消息。修复服务器即可解决问题,而无需修复客户端上的任何密钥。