2023-07-24 12:14:54
SSH免密登录的核心在于通过公钥-私钥认证机制替代密码验证。以下是详细实现步骤及关键注意事项:
一、基础免密登录配置(A→B)在A机器生成密钥对
ssh-keygen # 连续三次回车,默认生成密钥于/root/.ssh/生成文件:id_rsa(私钥)、id_rsa.pub(公钥)
将公钥传输至B机器
方法1:使用ssh-copy-id(推荐)
ssh-copy-id -i /root/.ssh/id_rsa.pub -p 22 root@192.168.1.105输入B机器的root密码后,公钥会自动追加到B的~/.ssh/authorized_keys。
方法2:手动操作(适用于无ssh-copy-id环境)
# 在A机器保存公钥到本地sz /root/.ssh/id_rsa.pub # 或使用scp传输# 在B机器操作mkdir -p ~/.ssh && chmod 700 ~/.sshtouch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keyscat id_rsa.pub >> ~/.ssh/authorized_keys测试免密登录
ssh -p 22 root@192.168.1.105若无需密码直接登录,则配置成功。
使用PEM密钥登录时
若B机器通过PEM密钥登录(如AWS),ssh-copy-id可能失效。需手动将A的公钥追加到B的authorized_keys中(参考方法2)。
权限问题排查
确保以下权限设置正确,否则免密可能失败:
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keysSELinux/防火墙干扰
若连接被拒绝,检查B机器的SELinux和防火墙规则:
setenforce 0 # 临时关闭SELinux(测试用)systemctl stop firewalld # 临时关闭防火墙(测试用)通过以上步骤,可实现从A机器到多台目标机器的免密SSH登录。如遇问题,可通过ssh -v root@host查看详细调试日志。