温馨提示×

centos ssh免密怎么设

小樊
46
2026-09-14 20:47:39
栏目: 智能运维

CentOS 上配置 SSH 免密登录(公钥认证),一般步骤如下:


一、在客户端生成密钥(如果没有)

在**你要登录的机器(客户端)**上执行:

ssh-keygen -t rsa -b 4096

一路回车即可,默认会生成:

  • ~/.ssh/id_rsa(私钥)
  • ~/.ssh/id_rsa.pub(公钥)

二、把公钥拷贝到服务器(最简单方式)

方法 1:使用 ssh-copy-id(推荐)

ssh-copy-id user@server_ip

示例:

ssh-copy-id root@192.168.1.100

输入一次密码后,以后就可以免密登录了。


方法 2:手动拷贝(无 ssh-copy-id 时)

在客户端执行:

cat ~/.ssh/id_rsa.pub

复制内容,到服务器上:

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

粘贴公钥,保存后:

chmod 600 ~/.ssh/authorized_keys

三、测试免密登录

ssh user@server_ip

如果不需要输入密码,说明配置成功。


四、常见问题排查

1. 权限不对(非常常见)

服务器上必须保证:

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

2. SELinux 导致

restorecon -Rv ~/.ssh

3. SSH 配置未开启公钥登录

编辑服务器 /etc/ssh/sshd_config

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后重启:

systemctl restart sshd

4. 防火墙/网络

确保 22 端口可达:

ssh -v user@server_ip

五、可选:禁止密码登录(更安全)

确认免密可用后:

PasswordAuthentication no

重启 sshd:

systemctl restart sshd

如果你告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 客户端和服务器是否同一台
  • 是否是 root 用户

我可以给你更精确的步骤。

0