当我尝试在客户端 C 和服务器 S(均位于同一 LAN 上)之间建立 SSH 连接时,客户端会在客户端用户的文件中查找服务器的密钥known_hosts
。
在连接尝试的通常情况下,如果找不到服务器的密钥,则会提示客户端接受服务器的密钥并将其放入用户的known_hosts
文件中。如果找到密钥,则连接过程将继续。
但是,我遇到的情况是,如果通过 LAN 路由器/调制解调器转发连接请求,则即使目标服务器的密钥查找服务器密钥也会失败是那里,并且不会提示客户端。相反,尝试被拒绝Connection reset by <IP of router>
直接使用以下命令连接成功到 LAN 主机:
ssh -vvv stephen@acer
连接失败的 LAN 路由器以转发到 acer,使用:
ssh -vvv stephen@michigan
这才刚刚开始发生。知道为什么吗?
服务器密钥是否被路由器更改?
路由器是否用自己的密钥替换了目标服务器的密钥?
有什么方法可以查看正在传递的密钥。我打电话时
ssh -vvv
已将 SSH 日志记录设置为VERBOSE
,但没有看到任何我认为有用的内容
系统信息:
Server host Ubuntu 18.04: Openssh-server/bionic-updates,bionic-security,now 1:7.6p1-4ubuntu0.1 amd64
Tested with clients:
- Ubuntu 18.10: openssh-client/cosmic,now 1:7.7p1-4 amd64
- Ubuntu 18.04: openssh-client/bionic-updates,bionic-security,now 1:7.6p1-4ubuntu0.1 amd64
- Debian 9.5: openssh-client/stable,now 1:7.4p1-10+deb9u4 amd64
Modem: Arris Xb6