如何调试 ssh 传入连接?

如何调试 ssh 传入连接?

我在从我的机器 (macOS 10.12) 访问具有 root 访问权限的服务器 (ubuntu 16.04)时遇到了问题ssh。情况很奇怪:我已检查sshd在服务器上运行,并且端口 22 已打开()sudo netstat -anp | grep sshd,并且流量未被阻止(sudo iptables -L | grep sshsudo ufw verbose);hosts.deny也没有我的 IP 地址。

最奇怪的是 - 我可以从另一台机器登录,没有任何问题。当我nmap <server-ip>在我的机器上运行时,它显示只有端口 80 是开放的;在另一台机器上运行相同的命令只会显示一个开放端口 - 22。我尝试从第三台机器登录 - 再次失败。不知道发生了什么。

我需要某种方式(tail -f可能是日志)来查看当我尝试从不同的机器连接时服务器上实际发生的情况。也许这会帮助我排除故障。关于如何调试此问题,有什么建议吗?

答案1

命令man 5 sshd_config会给你很多选项

尽管还有更高级别,但LogLevel VERBOSE文件中的设置可能是您所需要的。/etc/ssh/sshd_config

消息默认/var/log/auth.log以 ip 结尾,因此您必须tail -f /var/log/auth.log在单独的终端中查看发生了什么。

答案2

问题原来出在另一台与服务器具有相同 IP 地址的机器上。这很简单,但并不明显(叹气)。感谢回答者提供的意见。

当我检查客户端上的 arp 表并注意到出现间歇性问题的客户端有时会为同一服务器 IP 地址获取不同的 mac 地址时,我迫切地想要开始使用 Wireshark。这让我想到网络中可能存在不同的机器。这就是问题所在。

答案3

我猜你使用的网络nmap没有防火墙权限来访问port 22服务器上的。在另一台机器上,你只能看到port 22服务器上的,但看不到port 80,防火墙规则允许从那台机器连接到服务器,port 22但不允许port 80从那台机器连接到服务器。

检查防火墙设置中的规则是否允许您的机器和其他机器ssh访问http服务器。

如果这不能解决,您可以检查上述答案中提到的日志。

相关内容