2台linux机器配置免密登录


我来帮你在两台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

注意事项

  1. 权限设置(关键):

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/id_rsa
    chmod 644 ~/.ssh/id_rsa.pub
    
  2. 如果配置失败,检查

    • SELinux状态:getenforce
    • SSH配置文件:/etc/ssh/sshd_config
    # 确保以下配置是yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
    • 修改后重启SSH服务:systemctl restart sshd
  3. 使用特定端口

    ssh-copy-id -p 2222 user@hostname
    

配置完成后,你就可以方便地在两台机器之间进行免密操作了,比如使用 scp 传输文件或执行远程命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬砖天才、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值