如何确定使用 SSH 登录哪个端口?

如何确定使用 SSH 登录哪个端口?

我有一个远程设置的 Ubuntu 10.04 服务器,是我不久前设置的。当我记录用户名和密码时,我似乎很聪明,将常用的 ssh 端口从 22 更改为...其他端口。

我如何找出该端口可能是什么?

我确实可以通过托管公司的后门访问服务器,因此我可以执行所需的任何 Unix 命令 - 但我无法在我的机器上使用普通的 putty shell 登录。

答案1

首先检查配置文件配置了哪些端口:

$ sudo grep Port /etc/ssh/sshd_config
Port 22

然后重新启动ssh以确保它加载您刚刚看到的配置或找出正在ssh运行的端口:

$ sudo netstat -tpln | egrep '(Proto|ssh)'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      12586/sshd

这是ssh在端口 22 上正常运行的情况。

答案2

如果您可以通过其他方式访问服务器,只需运行:

$ sudo grep Port /etc/ssh/sshd_config 
Port NNN

这将返回一行如上所示的行,其中将NNN是您选择的端口。

答案3

更简单的方法是查看 SSH 服务器配置文件:

➜  ~  sudo grep Port /etc/ssh/sshd_config 
   Port 22

还可以使用以下命令检查每个进程的侦听端口lsof

sudo lsof -Pi | grep ssh

或任何其他端口列表命令,例如netstat -lntu.

答案4

如果您无权访问服务器的控制台,则必须探测远程主机的所有端口。这些实用程序类似于nmap,但网络层必须将流量中继到主机(IP 地址)和端口的特定组合。

相关内容