温馨提示×

CentOS SSH密钥怎么配置

小樊
51
2026-08-29 10:21:31
栏目: 智能运维

下面分 服务端(CentOS 本机)客户端 两部分,完整说明 CentOS 配置 SSH 密钥登录 的步骤,适用于 CentOS 7 / 8 / Stream


一、在 CentOS 服务器上配置 SSH 密钥登录

1️⃣ 登录 CentOS 服务器

ssh root@服务器IP

2️⃣ 创建密钥对(服务器端)

如果你是 第一次配置,可以先生成密钥:

ssh-keygen -t rsa -b 4096

按回车确认:

  • 密钥保存路径:/root/.ssh/id_rsa
  • 是否设置密码:可选(建议测试环境留空)

3️⃣ 配置公钥

如果你 已经在客户端生成了密钥,把 客户端的公钥 放到服务器:

方法一:手动配置(推荐)

在服务器上:

mkdir -p ~/.ssh
chmod 700 ~/.ssh

编辑 authorized_keys

vi ~/.ssh/authorized_keys

粘贴你 客户端的公钥内容(通常是 id_rsa.pub

然后设置权限(非常重要):

chmod 600 ~/.ssh/authorized_keys

4️⃣ 修改 SSH 配置

编辑 SSH 配置文件:

vi /etc/ssh/sshd_config

确保以下配置存在并取消注释:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

(可选)禁止 root 密码登录(增强安全):

PasswordAuthentication no
PermitRootLogin yes

5️⃣ 重启 SSH 服务

systemctl restart sshd

二、在客户端生成密钥并登录

1️⃣ 客户端生成密钥(Windows / Linux / macOS)

ssh-keygen -t rsa -b 4096

生成后:

  • 私钥:~/.ssh/id_rsa
  • 公钥:~/.ssh/id_rsa.pub

2️⃣ 把公钥拷贝到 CentOS(最简单方式)

ssh-copy-id root@服务器IP

如果没有该命令,可手动复制公钥内容。


3️⃣ 使用密钥登录

ssh root@服务器IP

✅ 如果不再提示输入密码,说明配置成功。


三、常见问题排查

❌ 权限错误(最常见)

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

❌ SELinux 问题

restorecon -Rv ~/.ssh

❌ 查看 SSH 登录日志

tail -f /var/log/secure

四、安全建议 ✅

  • ✅ 禁用密码登录
  • ✅ 使用非 root 用户
  • ✅ 私钥妥善保管,不公开
  • ✅ 可配合防火墙(fail2ban)

如果你愿意,可以告诉我:

  • CentOS 7 还是 8 / Stream
  • 用的是 Windows / macOS / Linux 客户端
  • 是否 禁止 root 登录

我可以给你一份 完全定制化的配置方案

0