本文目录 ↓

WIKI/VPN节点

SSH端口切换

SSH port switching

本文以 Ubuntu 的 OpenSSH 服务为例,记录自己拥有或获授权管理的服务器的 SSH 连接排查与端口配置。

以下命令中的 admin 是示例用户名,192.0.2.10 是文档专用示例 IP,22222 是示例端口;使用时替换成自己的实际配置。

检查 SSH 服务

如果无法通过 SSH 登录,可通过云服务商提供的控制台或远程终端检查服务器。

检查配置与实际监听端口

sudo sshd -t
sudo sshd -T | grep -E '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication) '
sudo ss -lntp
sudo systemctl status ssh.service ssh.socket --no-pager
  • sshd -t 检查配置语法,成功时通常没有输出。
  • sshd -T 显示解析后的配置,比只查找主配置文件中的 Port 更可靠;针对特定用户或地址的 Match 规则还需要单独核实。
  • ss -lntp 检查实际监听地址、端口和进程。使用 socket 激活时,监听者可能是 systemd。
  • ssh.service 和 ssh.socket 用于查看服务状态;具体启用哪一个取决于系统配置。

登录权限

建议使用普通管理账号配合 sudo,优先使用 SSH 密钥认证。PermitRootLogin yes 不是 SSH 正常运行的必要条件,不应把开启 root 直接登录当作通用修复方法。

调整 root 登录或密码认证策略前,先确认普通账号、密钥和 sudo 可用,并在另一个终端验证登录,避免失去管理入口。

SSH 连接故障排查

在本地 Windows PowerShell 中测试实际 SSH 端口:

Test-NetConnection -ComputerName 192.0.2.10 -Port 22

查看 TcpTestSucceeded。失败时,依次检查服务器是否运行、地址与端口是否正确、云安全组、系统防火墙以及 SSH 服务监听状态。

Ping 测试的是 ICMP 可达性。Ping 不通可能是 ICMP 被禁用、设备未响应或网络故障;Ping 通也不能说明 SSH 端口可用。仅凭 Ping 结果不能判断 IP 或端口是否被封锁。

如果 TCP 端口可达但登录失败,可以使用 SSH 的详细日志排查账号、密钥或认证配置:

ssh -v -p 22 admin@192.0.2.10

分享日志前应去除真实地址、用户名和本地路径等不必要的信息。

更改 SSH 端口

更改端口可减少针对默认端口的自动扫描,但不能替代密钥认证、系统更新和访问控制。

  1. 保留当前 SSH 会话,确认云控制台可用,并备份准备修改的配置文件。

  2. 在云安全组与系统防火墙中放行新端口。若服务器使用已启用的 UFW,可运行:

    sudo ufw allow 22222/tcp
  3. 检查 /etc/ssh/sshd_config 及其 Include 引入的配置,把实际生效的 Port 设置为新端口。此处以 22222 为例,不要仅替换可能不存在的 #Port 22。有意监听多个端口时,需要核对所有 Port 配置。

  4. 检查配置语法:

    sudo sshd -t
  5. 检查 ssh.socket 是否启用:

    systemctl is-active ssh.socket

    Ubuntu 24.04 使用 socket 激活时,需要重新生成并加载监听配置,再重启相关单元:

    sudo systemctl daemon-reload
    sudo systemctl restart ssh.socket
    sudo systemctl restart ssh.service

    如果使用直接监听端口的 ssh.service,重新加载服务配置:

    sudo systemctl reload ssh.service

    自定义的 socket 监听配置可能覆盖端口设置,应检查 systemctl cat ssh.socket 的输出,并以实际监听结果为准。

  6. 使用 sudo ss -lntp 确认新端口正在监听,再从另一个本地终端尝试连接:

    ssh -p 22222 admin@192.0.2.10
  7. 新连接成功后,再按需要移除旧端口的监听配置和放行规则,然后关闭原会话。如果失败,通过保留的会话或云控制台恢复配置。

END OF NOTE.浏览全部文档 ↗

输入关键词,搜索文档标题与正文。

搜索整个知识库↑ ↓ 选择 · ENTER 打开