/etc/ssh/sshd_config
文件,设置 PermitRootLogin yes
,修改SSH配置文件
SSH服务的主配置文件是/etc/ssh/sshd_config
,通过编辑此文件可以调整SSH服务的相关设置。
-
使用文本编辑器打开配置文件
sudo vi /etc/ssh/sshd_config
-
找到并修改以下参数
-
保存并退出编辑器
重启SSH服务以应用更改
修改配置文件后,需重启SSH服务使更改生效。
sudo systemctl restart sshd
验证服务状态
sudo systemctl status sshd
确保服务正在运行且无错误。
增强安全性措施
开放root远程登录存在较高安全风险,建议结合以下措施降低风险:
安全措施 | 说明 |
---|---|
限制IP访问 | 仅允许特定IP地址通过SSH连接root用户。 |
强制使用密钥认证 | 禁用密码登录,仅允许通过SSH密钥认证。 |
更改默认SSH端口 | 将SSH服务端口从22改为其他高端口,减少被扫描的风险。 |
启用防火墙 | 使用ufw 或iptables 限制SSH访问。 |
设置复杂密码 | 为root用户设置高强度密码,防止暴力破解。 |
使用fail2ban |
自动封禁多次失败的SSH登录尝试,增强防护。 |
限制IP访问示例
编辑/etc/ssh/sshd_config
,添加或修改以下行:
AllowUsers root@192.168.1.100
上述配置仅允许IP地址为168.1.100
的用户以root身份登录。
强制使用密钥认证
-
生成SSH密钥对(客户端)
ssh-keygen -t rsa -b 4096
按提示操作,生成公钥和私钥。
-
将公钥复制到服务器
ssh-copy-id root@your_server_ip
-
禁用密码认证
在/etc/ssh/sshd_config
中设置:PasswordAuthentication no
重启SSH服务:
sudo systemctl restart sshd
更改SSH默认端口
-
编辑配置文件
sudo vi /etc/ssh/sshd_config
修改或添加:
Port 2222
-
开放新端口的防火墙规则
sudo ufw allow 2222/tcp sudo ufw delete allow 22/tcp
-
重启SSH服务
sudo systemctl restart sshd
测试远程登录
使用以下命令测试root用户的SSH连接:
ssh root@your_server_ip -p 2222
若端口未更改,可省略-p
参数。
禁用Root远程登录(建议非必要时关闭)
完成必要操作后,建议重新禁用root登录以提升安全性:
-
编辑配置文件
sudo vi /etc/ssh/sshd_config
将
PermitRootLogin
改回no
或prohibit-password
。 -
重启SSH服务
sudo systemctl restart sshd
FAQs
Q1:如何恢复禁用Root远程登录?
A1:编辑/etc/ssh/sshd_config
文件,将PermitRootLogin
设置为no
或prohibit-password
,保存后重启SSH服务即可。
Q2:为什么建议使用密钥认证而非密码?
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/63392.html