在 CentOS 上生成 SSH 密钥一般使用 ssh-keygen 命令,下面是常见、标准的做法。
ssh-keygen
按提示操作:
Enter file in which to save the key
默认:/root/.ssh/id_rsa(root 用户)
普通用户:/home/用户名/.ssh/id_rsa
✅ 直接回车即可
Enter passphrase
设置密钥密码(可选)
Enter same passphrase again
再次确认
生成后会在 ~/.ssh/ 目录下看到:
~/.ssh/id_rsa # 私钥(非常重要,不能泄露)
~/.ssh/id_rsa.pub # 公钥(可放到远程服务器)
ssh-copy-id(推荐)ssh-copy-id user@远程服务器IP
示例:
ssh-copy-id root@192.168.1.100
输入一次远程服务器密码后,以后即可免密登录。
cat ~/.ssh/id_rsa.pub
~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh user@远程服务器IP
如果无需输入密码即可登录,说明成功 ✅
ssh-keygen -t ed25519
ssh-keygen -t rsa -b 4096
检查:
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys
确保:
.ssh 权限是 700authorized_keys 权限是 600restorecon -Rv ~/.ssh
systemctl status sshd
如果你需要的是 CentOS 7 / 8 / Stream、多用户配置、禁止密码登录 或 Git / Jenkins 使用 SSH 密钥,可以继续问我。