我没有 openssh-server,但我可以 ssh 到 localhost

我没有 openssh-server,但我可以 ssh 到 localhost

我的电脑上没有安装 openssh-server,但我可以 ssh 到 localhost,或者从另一台电脑 ssh 到我的电脑。这意味着我的电脑上正在运行另一个 ssh-server。我该如何找到它?你能帮我吗?

谢谢。

答案1

您可以使用 查看端口上正在监听的内容netstat。我使用 awk 将其缩减一点,只保留在端口 22 上运行的内容,然后排序以删除重复项。

$ sudo netstat -tulpn | awk '/:22/ {printf "%d\n", $7}' | sort -u
979

输出是进程的 ID。

我们可以通过查看/proc/此进程的表格来进一步探索这一点。我使用的是上面的输出,但你应该用你正在运行的进程来代替。

$ sudo readlink -f /proc/979/exe
/usr/sbin/sshd

要找出属于哪个包,我们只需:

$ dpkg -S /usr/sbin/sshd
openssh-server: /usr/sbin/sshd

我们可以将其组合成一个丑陋的命令:

$ sudo netstat -tulpn | awk '/:22/ {printf "%d\n", $7}' | sort -u | while read p; do dpkg -S $(sudo readlink -f /proc/$p/exe); done
openssh-server: /usr/sbin/sshd

相关内容