Linux修改SSH端口号和登录方式
目录
在Debian系统中,修改SSH端口号到2077的步骤如下:
一、备份配置文件
首先,备份sshd_config文件,以防止修改过程中出现错误导致无法通过SSH连接到服务器。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup二、修改配置文件
使用文本编辑器(如nano或vim)打开sshd_config文件。
sudo nano /etc/ssh/sshd_config或者
sudo vim /etc/ssh/sshd_config 在文件中找到以#Port 22开头的行(这行表示SSH默认的端口号是22,并且前面的#表示注释)。将其修改为:
Port 2077如果文件中没有Port配置项,直接在文件末尾添加Port 2077即可。
如果想开启root登录SSH的权限,需要找到#PermitRootLogin prohibit-password的位置,添加:
PermitRootLogin yes三、重启SSH服务
保存并关闭配置文件后,重启SSH服务使配置生效。
sudo systemctl restart sshd或者
sudo service ssh restart四、检查防火墙设置
确保防火墙允许2077端口的流量。如果使用的是iptables,可以添加如下规则:
bash复制
sudo iptables -A INPUT -p tcp --dport 2077 -j ACCEPT如果是ufw防火墙,可以使用:
bash复制
sudo ufw allow 2077/tcp然后检查防火墙状态,确保规则已经生效:
bash复制
sudo ufw status五、测试连接
在另一台计算机上或者使用SSH客户端,使用新的端口号尝试连接到Debian服务器。例如,如果你的服务器IP地址是192.168.1.100,可以使用以下命令:
bash复制
ssh -p 2077 [email protected]其中username是你的Debian服务器上的用户名。如果能够成功连接,说明端口号修改成功。
六、root用户登录失败的处理
如果使用root用户连接,且连接失败,但是ping 192.168.1.100 能通,有可能是SSH默认不允许root用户登录。
使用以下命令测试:
sshd -T | grep -i permitroot输出结果只有两种:
permitrootlogin yes→ 允许 root 登录permitrootlogin no(或prohibit-password/without-password) → 不允许root登录
步骤 1:改配置
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config说明:
- 自动去掉行首的
#(如果被注释) - 把整行替换成
PermitRootLogin yes
步骤 2:重启服务
sudo systemctl restart ssh验证
sudo sshd -T | grep permitroot应输出:permitrootlogin yes
一句话总结:
执行完上面两条命令,root 就能用密码直接 SSH 登录了。如果宿主机仍连不上,再确认防火墙:sudo ufw allow 22。