目录

Linux修改SSH端口号和登录方式

在Debian系统中,修改SSH端口号到2077的步骤如下:

一、备份配置文件

首先,备份sshd_config文件,以防止修改过程中出现错误导致无法通过SSH连接到服务器。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

二、修改配置文件

使用文本编辑器(如nanovim)打开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