在CentOS系统中,提高SSH登录安全性可以通过以下几种方法实现:
生成SSH密钥对:在本地机器上生成SSH密钥对。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_key
将公钥复制到远程服务器:使用ssh-copy-id命令将公钥复制到远程服务器的~/.ssh/authorized_keys文件中。
ssh-copy-id user@remote_server
配置SSH服务器:编辑远程服务器上的/etc/ssh/sshd_config文件,确保以下配置项没有被注释掉,并且设置为上述值。
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启SSH服务:保存并退出编辑器后,重启SSH服务以应用更改。
sudo systemctl restart sshd
为了提高安全性,可以禁用密码认证,只允许公钥认证。编辑/etc/ssh/sshd_config文件,找到并修改以下配置项:
PasswordAuthentication no
然后重启SSH服务:
sudo systemctl restart sshd
更改SSH服务的默认端口可以防止一些自动化工具的扫描,提高安全性。编辑/etc/ssh/sshd_config文件,找到并修改以下配置项:
Port 2222
保存文件并重启SSH服务以应用更改:
sudo systemctl restart sshd
为了增强安全性,可以禁用root用户通过SSH登录。编辑/etc/ssh/sshd_config文件,将PermitRootLogin设置为no:
PermitRootLogin no
然后重启SSH服务以应用更改:
sudo systemctl restart sshd
使用firewalld配置防火墙规则,只允许特定IP地址或端口访问SSH服务。
sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent
sudo firewall-cmd --reload
sshd_config中设置MaxAuthTries为一个较小的数字,如3,以限制失败认证的最大次数。sshd_config中配置Banner,以显示登录前的提示信息。通过上述配置,可以显著提高CentOS系统通过SSH登录的安全性。