下面以 CentOS 7 / 8 / Stream 为例,详细说明如何配置 SSH 密钥登录(更安全、推荐替代密码登录)。
如果已有密钥可跳过此步。
ssh-keygen -t rsa -b 4096
一路回车即可,默认生成:
~/.ssh/id_rsa~/.ssh/id_rsa.pub可选:设置密钥密码(passphrase)提升安全性
ssh-copy-id user@server_ip
示例:
ssh-copy-id root@192.168.1.100
.ssh 目录并设置权限:mkdir -p ~/.ssh
chmod 700 ~/.ssh
id_rsa.pub 内容写入:echo "ssh-rsa AAAA..." >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
编辑 SSH 配置文件:
vi /etc/ssh/sshd_config
确保以下配置存在并正确:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 想禁用密码登录(可选但推荐)
PermitRootLogin yes # 若允许 root 登录
⚠️ 修改前建议先保留一个 SSH 会话,防止被锁外面
systemctl restart sshd
检查状态:
systemctl status sshd
在客户端执行:
ssh user@server_ip
✅ 如果不再提示输入密码,说明配置成功。
检查:
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys
权限必须:
.ssh → 700
authorized_keys → 600
restorecon -Rv ~/.ssh
tail -f /var/log/secure
如果你需要:
可以直接告诉我你的 CentOS 版本和使用场景,我可以给你定制配置。