密钥身份验证比传统的密码验证更安全,因为它使用非对称加密技术。以下是配置步骤:
在本地计算机上执行:
ssh-keygen -t rsa -b 4096
# 或使用更安全的ed25519算法
ssh-keygen -t ed25519
按照提示操作,建议为密钥设置密码短语增加安全性。
方法一:使用ssh-copy-id(最简单)
ssh-copy-id username@your_server_ip
方法二:手动复制(如果没有ssh-copy-id)
cat ~/.ssh/id_rsa.pub | ssh username@your_server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
编辑SSH配置文件:
sudo vi /etc/ssh/sshd_config
确保以下设置:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 禁用密码登录(确认密钥登录可用后再设置)
PermitRootLogin no # 禁用root直接登录
sudo systemctl restart sshd
ssh -i ~/.ssh/id_rsa username@your_server_ip
更改SSH端口:
Port 2222 # 或其他非标准端口
使用fail2ban防止暴力破解:
sudo yum install epel-release
sudo yum install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
配置防火墙:
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
通过以上步骤,您的CentOS服务器将使用更安全的SSH密钥身份验证方式。