![SSH 连接总是要求输入密码](https://linux22.com/image/1600245/SSH%20%E8%BF%9E%E6%8E%A5%E6%80%BB%E6%98%AF%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81.png)
我正在 Hadoop 多节点集群上工作,因此节点使用 SSH 进行通信,这是我的问题:
- 我有 3 台电脑连接到同一个路由器
- 此路由器有时会重新启动,因此机器的 IP 地址可能会改变
- 每次发生这种情况时,我都会编辑文件来更新名为( ,, )
/etc/hosts
的机器的 IP 地址,它会告诉您这台机器将被添加。master
slave1
slave2
首先,当我配置 SSH 生成密钥并将其复制到其他机器时,它运行良好,我可以ssh slave1
从 master 使用并在没有密码提示的情况下登录:
- 我已经编辑
sshd_config
文件并更改PubkeyAuthentication
为no
- 尝试重新生成 ssh 密钥并将
ssh-copy-id
其再次复制到其他计算机(类似于ssh-copy-id ~/.ssh/id_rsa.pub user@host
所有计算机)
我可以手动更改 IP 地址,因为我在尝试使 IP 地址静态时遇到了很大的麻烦,但我需要使用ssh host
无密码提示。
答案1
您需要在服务器上PubkeyAuthentication
进行设置以使用您已复制的密钥。yes
sshd_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 地址。