1. 修改 ssh 远程端口的步骤
1.1 登录服务器
使用当前的 ssh 端口登录服务器(默认端口为 22):
ssh root@<服务器ip地址> -p 22
如果是非 root 用户,请使用具有 sudo 权限的账户登录。
1.2 修改 ssh 配置文件
使用文本编辑器打开 sshd_config
文件:
sudo nano /etc/ssh/sshd_config
或者:
sudo vi /etc/ssh/sshd_config
找到以下行(如果没有,则手动添加):
#port 22
- 去掉
#
注释符号。 - 将端口号
22
修改为你想要的端口号(例如2022
或2222
),如下:
port 2022
确保以下设置已启用并检查是否存在(防止配置冲突):
addressfamily inet permitrootlogin yes # 如果允许 root 登录,确保此项为 yes
1.3 修改防火墙规则
更改端口后,需要确保防火墙允许新端口的通信,否则可能导致无法连接。
1.3.1 使用 firewalld(centos/redhat 系统)
添加新端口规则(以 2022
为例):
sudo firewall-cmd --permanent --add-port=2022/tcp
移除默认端口(22)规则(如果不再需要):
sudo firewall-cmd --permanent --remove-port=22/tcp
重新加载防火墙规则:
sudo firewall-cmd --reload
1.3.2 使用 iptables(传统防火墙)
添加新端口规则:
sudo iptables -a input -p tcp --dport 2022 -j accept
移除默认端口规则(如果不再需要):
sudo iptables -d input -p tcp --dport 22 -j accept
保存规则(确保重启后规则仍生效):
sudo iptables-save > /etc/iptables/rules.v4
1.3.3 使用 ufw(ubuntu/debian 系统)
允许新端口:
sudo ufw allow 2022/tcp
删除默认端口(如果不再需要):
sudo ufw delete allow 22/tcp
检查并启用防火墙:
sudo ufw enable
1.4 重启 ssh 服务
修改完成后,重启 ssh 服务以应用更改:
sudo systemctl restart sshd
或:
sudo service sshd restart
如果使用 ubuntu/debian,服务名可能是 ssh
:
sudo systemctl restart ssh
1.5 测试新的端口
打开新的 ssh 会话,测试是否能通过新端口连接:
ssh root@<服务器ip地址> -p 2022
注意:在测试新端口成功前,不要关闭当前的 ssh 会话,以免配置错误导致无法连接。
如果测试成功,可以关闭旧的端口会话。
2. 常见问题和解决方法
2.1 修改后无法连接
检查防火墙是否开放了新端口:
使用以下命令检查防火墙规则:
sudo firewall-cmd --list-ports # 适用于 firewalld sudo ufw status # 适用于 ufw
检查 ssh 服务状态:
确保 ssh 服务已启动且无错误:
sudo systemctl status sshd
检查端口占用情况:
确保新端口未被其他服务占用:
sudo netstat -tuln | grep 2022
2.2 忘记新端口号
- 如果忘记了新端口号,可以通过以下方法查看:
- 登录服务器的控制台(通过云服务商提供的 web 控制台)。
- 查看 ssh 配置文件:
cat /etc/ssh/sshd_config | grep port
3. 安全性优化建议
除了修改默认 ssh 端口,还可以采取以下措施增强 ssh 安全性:
3.1 禁用密码登录,启用密钥登录
生成 ssh 密钥对(如果尚未生成):
ssh-keygen -t rsa -b 4096
将公钥上传到服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@<服务器ip>
修改 ssh 配置文件,禁用密码登录:
sudo nano /etc/ssh/sshd_config
找到并修改以下项:
passwordauthentication no
重启 ssh 服务:
sudo systemctl restart sshd
3.2 限制登录 ip
修改防火墙规则,只允许特定 ip 地址访问 ssh:
使用 firewalld
:
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='<你的ip>' port port=2022 protocol=tcp accept"
替换 <你的ip>
为你的公网 ip 地址。
重载防火墙:
sudo firewall-cmd --reload
或编辑 /etc/hosts.allow
文件:
sshd: <你的ip>
3.3 启用 fail2ban
安装并配置 fail2ban,自动封禁多次尝试登录失败的 ip:
sudo yum install epel-release -y sudo yum install fail2ban -y
启动并配置:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
4. 总结
修改 ssh 端口是提升服务器安全性的有效措施,但需要注意以下几点:
- 修改端口后,确保防火墙规则已更新,并测试新端口连接。
- 配合其他安全措施(如密钥登录、ip 限制、fail2ban)进一步提升安全性。
- 在修改前备份 ssh 配置文件,避免因配置错误导致服务器无法访问:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
通过以上步骤,你可以安全地修改 ssh 端口并保护服务器免受暴力 破解的威胁!
到此这篇关于linux系统修改ssh远程端口的方法步骤的文章就介绍到这了,更多相关linux修改ssh远程端口内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论