我有一个远程设置的 Ubuntu 10.04 服务器,我在不久前设置了它。虽然我记录了用户名和密码,但我似乎很聪明,将通常的 ssh 端口从 22 更改为......别的。
我如何找出该端口可能是什么?
我确实可以通过托管公司的后门访问服务器,所以我可以执行任何需要的 Unix 命令——但我无法在我的机器上使用普通的腻子外壳登录。
Mar*_*one 33
首先检查配置文件配置了哪个端口:
$ sudo grep Port /etc/ssh/sshd_config
Port 22
Run Code Online (Sandbox Code Playgroud)
然后重新启动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
Run Code Online (Sandbox Code Playgroud)
那是ssh在端口 22 上正常运行。
如果您可以通过其他方式访问服务器,只需运行:
$ sudo grep Port /etc/ssh/sshd_config
Port NNN
Run Code Online (Sandbox Code Playgroud)
这将返回一条如上所示的行,其中NNN将是您选择的端口。
更简单的方法是查看 SSH 服务器配置文件:
? ~ sudo grep Port /etc/ssh/sshd_config
Port 22
Run Code Online (Sandbox Code Playgroud)
还使用以下命令检查每个进程的侦听端口lsof:
sudo lsof -Pi | grep ssh
Run Code Online (Sandbox Code Playgroud)
或任何其他端口列表命令,如netstat -lntu.
如果您没有服务器的登录访问权限,您可以使用nmap“版本扫描”功能找到 SSH 端口:
nmap -sV -p- <insert target's IP here>
Run Code Online (Sandbox Code Playgroud)
该-sV选项表示“版本扫描”,-p-表示“扫描所有端口”。如果您的连接良好并且确定不会扰乱某人的防火墙或 IDS,您可以添加-T5“尽快扫描”。结果将如下所示:
PORT STATE SERVICE VERSION
1422/tcp open ssh (protocol 2.0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69448 次 |
| 最近记录: |