如何修改SSH默认连接端口?本地设置默认2222端口替代22的方法
SSH端口配置常见问题解答
1. 能否修改SSH的默认连接端口?
当然可以!修改服务器端的SSH默认端口(从22改为其他值)是很常见的安全优化操作,具体步骤如下:
- 编辑SSH服务配置文件:打开
/etc/ssh/sshd_config(主流Linux发行版路径基本一致),找到#Port 22这一行,去掉注释符号#,将22替换为你想要的端口(比如2222)。 - 重启SSH服务:根据系统类型执行对应命令:
- Debian/Ubuntu:
sudo systemctl restart sshd - RHEL/CentOS:
sudo systemctl restart sshd - 老版本SysVinit系统:
sudo service ssh restart
- Debian/Ubuntu:
- 开放防火墙端口:别忘给新端口放行,比如用ufw的话:
sudo ufw allow 2222/tcp;用firewalld的话:sudo firewall-cmd --add-port=2222/tcp --permanent && sudo firewall-cmd --reload - 测试验证:先不要断开当前SSH连接,新开终端用新端口测试连接,确认能正常访问后再关闭旧连接,避免被锁在服务器外。
2. 本地设置SSH默认端口为2222,无需每次加-p参数
完全可以通过修改本地SSH配置实现,这样输入ssh root@ip就会默认用2222端口,需要连接22端口的服务器时再单独指定即可。
方法一:用户级配置(仅当前用户生效)
- 如果主目录下没有
.ssh文件夹,先创建:mkdir -p ~/.ssh,接着创建配置文件:touch ~/.ssh/config - 编辑
~/.ssh/config,添加以下内容:Host * Port 2222Host *表示对所有远程主机生效,默认端口设为2222。 - 设置正确的文件权限(SSH对权限要求严格,否则会报错):
chmod 600 ~/.ssh/config
方法二:全局配置(所有用户生效)
- 编辑
/etc/ssh/ssh_config(注意是ssh_config,不是服务器端的sshd_config),找到#Port 22一行,去掉注释并修改为Port 2222。 - 保存后,所有用户执行
ssh命令都会默认使用2222端口。
特殊场景:连接22端口的服务器
如果需要连接默认22端口的服务器,有两种便捷方式:
- 临时指定端口:
ssh root@ip -p 22 - 在本地配置文件中单独添加该主机规则,比如:
之后直接输入Host old-server HostName 192.168.1.100 Port 22 User rootssh old-server就能快速连接这台服务器。
内容的提问来源于stack exchange,提问作者Lucas César




