为什么密码少ssh无法正常工作?

时间:2013-06-19 10:34:36

标签: linux hadoop ssh cluster-computing

我在我的集​​群中连接了3个数据节点(在所有这些数据节点中无密码工作正常),这些节点工作正常,但是当我尝试连接另一个数据节点时,无字源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 

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

4 个答案:

答案 0 :(得分:1)

获取“真实”原因需要更多信息。然而,这里有两个我发现的最常见的问题,与密钥配置本身无关(考虑到你使用的是Linux):)

  1. 远程计算机中的SSHD在受限模式下配置为“root”,并且您尝试以root身份ssh。解决方案:将/etc/ssh/sshd.conf从其中一台工作机器复制到故障并重新启动ssh服务器。

  2. 用于远程登录的用户的主文件夹具有无效权限。 SSH守护程序的许多默认配置包含有关用户主文件夹权限的限制以用于安全目的。解决方案:与工作节点进行比较并修复。 (有时您会在/ var / log / messages中看到警告/错误日志。

  3. 如果您按照流程从头开始集成密钥并查看所涉及的所有文件的权限,那么您应该不会遇到任何问题。

    请回复sshd.conf文件以及使用-v(ssh -v IPADDR)远程登录的日志,以便更好地进行分析。

答案 1 :(得分:1)

今天我与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

之后,无密码登录在此特定服务器上运行。

答案 2 :(得分:0)

我最近遇到了同样的错误。我的所有文件权限都已正确设置,但ssh仍要求输入密码。最后我发现它是由于缺少/ etc / ssh / sshd_config:你应该添加“AuthorizedKeysFile%h / .ssh / authorized_keys”,这样sshd就会在你家的目录中查找publickey文件。

这样做之后问题就消失了。

答案 3 :(得分:-1)

linux中的方法是为该用户生成加密密钥(使用rsa或dsa),将该密钥保存在授权密钥中,为该文件夹分配权限并在其中归档。

1:使用命令生成密钥

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

您的公钥已保存在/ home / username_of_pc / .ssh / id_dsa.pub

2:将该密钥添加到授权密钥中。

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

设置保存文件夹的权限。 如果你需要在另一台服务器上,那么只需将其复制到其他机器上。

3:只需输入

即可查看ssh
    ssh localhost

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