这篇文章上次修改于 1199 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

1 目标

在机器 a 执行 ssh 命令登录到机器 b 时,不需要输入密码。

2 实现

  • 在机器 a 上,查看是否有公钥 ~/.ssh/id_rsa.pub,如果没有,则生成:

    ssh-keygen -t rsa
  • 在机器 a 上,将公钥 ~/.ssh/id_rsa.pub 内容追加到机器 b(10.10.10.10)的 ~/.ssh/authorized_keys 文件中:
    方式 1:

    ssh-copy-id -i ~/.ssh/id_rsa.pub user@10.10.10.10

    方式 2:手动拷贝。

  • ssh 登录时可能会报错:

    ERROR: ssh_exchange_identification: read: Connection reset by peer

    需要登录到机器 b 上,在文件 /etc/hosts.allow 中添加:sshd: ALL。

    然后重启 sshd:systemctl restart sshd