**OpenSSH 默认使用哪个端口?如何修改配置端口?**
OpenSSH 服务器默认监听的端口是 **22**。这是 SSH 协议的标准端口,用于安全地进行远程登录和文件传输。
要修改 SSH 的监听端口,需编辑其配置文件 `/etc/ssh/sshd_config`,找到 `Port` 指令并修改为所需端口号,例如:
```
Port 2222
```
保存后重启 SSH 服务以生效配置:
```
sudo systemctl restart sshd
```
修改端口可增强安全性,避免自动化攻击。同时,还需确保防火墙允许新端口通信,并在连接时指定端口:
```
ssh user@host -p 2222
```
注意:修改前应保留默认端口或确保可通过新端口访问,避免被锁在系统之外。
1条回答 默认 最新
巨乘佛教 2025-07-23 11:00关注1. OpenSSH 默认端口概述
OpenSSH 是目前最广泛使用的安全远程登录协议实现之一,其服务器组件
sshd默认监听在 TCP 端口 22。这个端口号是 Internet Assigned Numbers Authority(IANA)为 SSH 协议保留的标准端口。使用标准端口的好处是方便用户和自动化工具进行连接,但这也意味着容易成为自动化攻击的目标,例如暴力破解尝试、SSH 扫描等。
2. 修改 OpenSSH 监听端口的步骤
为了增强服务器的安全性,通常建议修改默认的 SSH 端口。以下是具体操作步骤:
- 编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config - 找到并修改
Port 22为所需的端口号,例如:
Port 2222 - 保存文件并退出编辑器。
- 重启 SSH 服务:
sudo systemctl restart sshd - 验证新端口是否监听:
ss -tuln | grep 2222
3. 修改端口后的注意事项
修改 SSH 端口虽然可以降低被自动化攻击的风险,但也存在一些潜在的问题,必须谨慎操作:
- 确保防火墙规则允许新端口通信。例如在
ufw中添加:
sudo ufw allow 2222/tcp - 如果使用 SELinux 或 AppArmor 等安全模块,可能需要更新策略以允许新端口。
- 测试新端口连接前,建议保留原 22 端口,直到确认新端口工作正常。
- 远程连接时需使用
-p参数指定端口:
ssh user@host -p 2222
4. 常见问题与排查思路
在修改端口后,可能会遇到连接失败的问题,以下是常见原因及排查方法:
问题现象 可能原因 解决方法 连接超时 防火墙未开放端口 检查防火墙规则,开放对应端口 Connection refused sshd 未监听新端口 检查配置文件是否正确并重启服务 Permission denied 权限配置错误 检查 /etc/ssh/sshd_config中的 AllowUsers、DenyUsers 等设置5. 安全加固建议
除了修改默认端口外,还可以结合以下措施进一步提升 SSH 服务的安全性:
- 禁用 root 登录:
PermitRootLogin no - 限制允许登录的用户:
AllowUsers user1 user2 - 启用密钥认证,禁用密码登录:
PasswordAuthentication no - 使用 Fail2Ban 等工具防止暴力破解攻击。
6. 自动化与脚本化管理
对于需要批量管理服务器的运维团队,可以通过脚本自动修改 SSH 配置,例如使用 Ansible 或 Puppet:
- name: 修改 SSH 端口 lineinfile: path: /etc/ssh/sshd_config regexp: '^#?Port' line: 'Port 2222' state: present然后通过 Ansible 模块重启服务:
- name: 重启 SSHD 服务 service: name: sshd state: restarted7. 审计与日志分析
修改端口后,建议定期查看 SSH 的日志信息,以确认是否有异常访问行为。日志通常位于:
/var/log/auth.log可以使用
journalctl实时查看 SSH 服务状态:journalctl -u sshd -f本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 编辑 SSH 配置文件: