在 CentOS 上配置 SSH 免密登录(公钥认证),一般步骤如下:
在**你要登录的机器(客户端)**上执行:
ssh-keygen -t rsa -b 4096
一路回车即可,默认会生成:
~/.ssh/id_rsa(私钥)~/.ssh/id_rsa.pub(公钥)ssh-copy-id user@server_ip
示例:
ssh-copy-id root@192.168.1.100
输入一次密码后,以后就可以免密登录了。
在客户端执行:
cat ~/.ssh/id_rsa.pub
复制内容,到服务器上:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys
粘贴公钥,保存后:
chmod 600 ~/.ssh/authorized_keys
ssh user@server_ip
如果不需要输入密码,说明配置成功。
服务器上必须保证:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
restorecon -Rv ~/.ssh
编辑服务器 /etc/ssh/sshd_config:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改后重启:
systemctl restart sshd
确保 22 端口可达:
ssh -v user@server_ip
确认免密可用后:
PasswordAuthentication no
重启 sshd:
systemctl restart sshd
如果你告诉我:
我可以给你更精确的步骤。