如何调试 ssh 传入连接?

pee*_*onn 1 server ssh iptables networking

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

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

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

sмu*_*urf 9

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

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

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

  • 实际上它确实有帮助 - 它表明没有数据包到达 sshd 进程。您的下一步是找出阻止它的防火墙 - 服务器本身或途中的某个路由器。尝试在服务器上运行此命令:`sudo tcpdump dst xxxx and dst port 22`,用实际 IP 地址替换 xxxx,尝试从您的 macOs 机器连接并检查屏幕上是否打印了任何内容。如果是 - 检查服务器防火墙规则。如果不是,则问题出在您的 macOS 或它与服务器之间的路由器/防火墙中。 (2认同)