文章目录
我来帮你在两台Linux机器之间配置SSH免密登录。假设两台机器分别为 机器A 和 机器B。
方法一:单向免密登录(从A免密登录到B)
步骤1:在机器A上生成SSH密钥对
ssh-keygen -t rsa -b 4096
按提示操作(可以直接按回车使用默认路径和空密码)
步骤2:查看生成的公钥
cat ~/.ssh/id_rsa.pub
步骤3:将机器A的公钥复制到机器B
ssh-copy-id user@机器B的IP
# 例如:ssh-copy-id root@192.168.1.100
输入机器B的密码后,公钥会自动添加到 ~/.ssh/authorized_keys
步骤4:测试免密登录
ssh user@机器B的IP
# 例如:ssh root@192.168.1.100
无需输入密码即可登录,配置成功!
方法二:双向免密登录(两台机器互信)
步骤1:在两台机器上都生成密钥对
# 机器A和机器B都执行
ssh-keygen -t rsa -b 4096
步骤2:交换公钥
# 在机器A上执行
ssh-copy-id user@机器B的IP
# 在机器B上执行
ssh-copy-id user@机器A的IP
步骤3:测试双向免密
# 在机器A上测试登录B
ssh user@机器B的IP
# 在机器B上测试登录A
ssh user@机器A的IP
方法三:手动配置(如果ssh-copy-id不可用)
1. 在机器A上执行:
# 查看公钥
cat ~/.ssh/id_rsa.pub
# 复制显示的内容
2. 在机器B上执行:
# 创建.ssh目录(如果不存在)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# 将机器A的公钥追加到authorized_keys
echo "机器A的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
常用验证命令
# 测试连接
ssh -v user@hostname # -v 显示详细连接信息
# 如果连接有问题,检查权限
ls -la ~/.ssh/
# 正确的权限应该是:
# drwx------ 2 user user 4096 date .ssh
# -rw------- 1 user user 422 date authorized_keys
# -rw------- 1 user user 3381 date id_rsa
# -rw-r--r-- 1 user user 742 date id_rsa.pub
注意事项
-
权限设置(关键):
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub -
如果配置失败,检查:
- SELinux状态:
getenforce - SSH配置文件:
/etc/ssh/sshd_config
# 确保以下配置是yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys- 修改后重启SSH服务:
systemctl restart sshd
- SELinux状态:
-
使用特定端口:
ssh-copy-id -p 2222 user@hostname
配置完成后,你就可以方便地在两台机器之间进行免密操作了,比如使用 scp 传输文件或执行远程命令。
1911

被折叠的 条评论
为什么被折叠?



