SSH 连接总是要求输入密码

SSH 连接总是要求输入密码

我正在 Hadoop 多节点集群上工作,因此节点使用 SSH 进行通信,这是我的问题:

  • 我有 3 台电脑连接到同一个路由器
  • 此路由器有时会重新启动,因此机器的 IP 地址可能会改变
  • 每次发生这种情况时,我都会编辑文件来更新名为( ,, )/etc/hosts的机器的 IP 地址,它会告诉您这台机器将被添加。masterslave1slave2

首先,当我配置 SSH 生成密钥并将其复制到其他机器时,它运行良好,我可以ssh slave1从 master 使用并在没有密码提示的情况下登录:

  • 我已经编辑sshd_config文件并更改PubkeyAuthenticationno
  • 尝试重新生成 ssh 密钥并将ssh-copy-id其再次复制到其他计算机(类似于ssh-copy-id ~/.ssh/id_rsa.pub user@host所有计算机)

我可以手动更改 IP 地址,因为我在尝试使 IP 地址静态时遇到了很大的麻烦,但我需要使用ssh host无密码提示。

答案1

您需要在服务器上PubkeyAuthentication进行设置以使用您已复制的密钥。yessshd_config

(一旦该功能起作用,您还应该禁用密码以PasswordAuthentication no防止暴力猜测)。

/etc/hosts您可以编辑或创建用户配置,而不必进行编辑(这需要 root 权限) ~/.ssh/config。(但这仅适用于 ssh)。它看起来像这样:

Host slave1
  Hostname 192.168.1.101
  User bob
  IdentityFile ~/.ssh/id_rsa
  PubkeyAuthentication yes`

Host slave2
  Hostname 192.168.1.102
  User bobby`

Host master
  Hostname 192.168.1.100
  User admin`

替换192.x.x.x为您的地址并根据您的需要进行更改(man ssh_config在这里很有帮助)。

有了它,您将能够输入ssh slave1并应用各种设置。

sshd_config配置 SSH服务器ssh_config配置 SSH客户(针对所有用户)和每个用户~/.ssh/config

更改 IP 地址的问题最好在单独的问题中讨论,但我会研究锁定 DHCP 租约(如果您有权访问路由器),研究输入inform 192.168.1.101/etc/dhcpcd.conf如果您使用 dhcpcd)或再次提供静态 IP 地址。

相关内容