为什么无密码ssh不起作用?

8yoxcaq7  于 2021-06-04  发布在  Hadoop
关注(0)|答案(4)|浏览(377)

我在集群中连接了3个数据节点(在所有这些数据节点中,pass wordless工作正常),它们工作正常,但是当我尝试连接另一个数据节点时,pass wordless ssh在第四个数据节点中不工作。
前三个数据节点的ip地址:

172.20.93.192(name node)
172.20.94.189(data node)
172.20.94.145(data node)
172.20.94.193(data node)

现在,我的第四个数据节点的ip地址是172.20.95.6,在这里没有密码。
我正在生成密钥

ssh-keygen -t rsa

我对第四个数据节点执行与上述三个数据节点相同的过程,但它不起作用。为什么?原因可能是什么?

jaxagkaj

jaxagkaj1#

我最近也犯了同样的错误。我的所有文件权限都设置正确,但ssh仍要求输入密码。最后我发现这是由于/etc/ssh/sshd\u config中缺少一个:您应该添加“authorizedkeysfile%h/.ssh/authorized\u keys”,以便sshd在您的home dir中查找publickey文件。
这样做之后问题就消失了。

lmyy7pcs

lmyy7pcs2#

需要更多的信息才能得到“真正”的原因。不过,我发现了两个最常见的问题,它们与密钥配置本身无关(考虑到您使用linux:):
远程机器中的sshd被配置为“root”的受限模式,并且您正在尝试以root身份ssh。解决方案:将/etc/ssh/sshd.conf从一台工作机器复制到出现故障的机器上,然后重新启动ssh服务器。
用于远程登录的用户的主文件夹具有无效权限。为了安全起见,ssh守护程序的许多默认配置都包含有关用户主文件夹权限的限制。解决方案:与工作节点比较并修复(有时您会在/var/log/messages中看到警告/错误日志。
如果您按照流程从头开始集成密钥并检查所有相关文件的权限,那么您应该不会遇到任何问题。
请使用sshd.conf文件以及使用-v(ssh-v ipaddr)远程登录的日志进行回复,以便进行更好的分析。

9udxz4iz

9udxz4iz3#

linux中的方法是为该用户生成加密密钥(使用rsa或dsa),将该密钥保存在authorized key中,为其中的文件夹和文件分配权限。
1:使用命令生成密钥

ssh-keygen –t dsa –P '' –f ~/.ssh/id_dsa

您的公钥已保存在\u pc/.ssh/id\u dsa.pub的/home/username\u中
2:将该密钥添加到授权密钥中。

Cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

设置保存文件夹的权限。如果您需要它在另一台服务器上,那么只需将它复制到另一台机器上。
3:只需键入

ssh localhost

它不应该要求密码,只显示上次登录时间,然后它的设置正确。记住不要将root用于ssh。

laawzig2

laawzig24#

我今天在centos服务器上遇到了一个非常类似的问题。问题是 /root 文件夹有错误的权限。事实上 /var/log/secure 日志文件显示此错误:

Sep  3 09:10:40 nec05 sshd[21858]: Authentication refused: bad ownership or modes for directory /root

这是错误的:

[root@nec05 ~]# ls -ld /root
drwxrwxrwx. 32 root root 4096 Sep  3 09:54 /root

使用 chmod 修正了它:

[root@nec05 ~]# chmod 550 /root
[root@nec05 ~]# ls -ld /root
dr-xr-x---. 32 root root 4096 Sep  3 09:54 /root

之后,无密码登录在这个特定的服务器上工作。

相关问题