SSH自动loginfunction偶尔工作

我正在安装20台服务器。

在每个特定的用户上,我创build了一个dsa密钥。

我做了每个服务器的cat key.pub到第一个服务器的~/.ssh/authorized_keys

我validation了所有的服务器可以login没有密码的第一台服务器。

使用puppet,我将第一台服务器的.ssh/authorized_key复制到所有其他服务器上。

权限是一样的,600

我无法自动login; 它仍然从服务器到第一个 – 但不是任何其他。 我以用户身份login,SSH到其他服务器 – 它要求我input密码。

我重新启动sshd服务,但无济于事。 / etc / ssh / sshd_config在第一台服务器和其他所有服务器上是相同的。

这是RHEL6。

有任何想法吗? 我做错什么了吗?

这是傀儡文件; 它现在工作 – 我有775根

 文件{“/ home / user”:
    所有者=>用户,
    组=>用户,
    确保=>目录,
    模式=> 755,
 }

 file {“/home/user/.ssh”:
    所有者=>用户,
    组=>用户,
    确保=>目录,
    模式=> 700,
 }

 file {“/home/user/.ssh/authorized_keys”:
    所有者=>用户,
    组=>用户,
    确保=>文件,
    模式=> 600,
     source =>“puppet://puppet/files/user_sshkeys.txt”;
 }

~/.ssh目录的权限应该是700~/.ssh/authorized_keys文件的权限应该是600 。 您可能想限制用户主目录的写入权限给用户。

 chmod go-w ~/ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys 

而不是使用cat ,请尝试ssh-copy-id命令,因为它处理这些权限。

你能告诉我们你的Puppet文件指令是什么样子的吗? 这可能可以在那里纠正。

你正在尝试设置什么被称为“基于主机的身份validation”。 做networkingsearch,你会发现你需要什么。 这是一个高级的SSH主题,一旦完成,很容易做到。

傀儡(当我写这个,版本3.1.1)有一个称为ssh_authorized_key的types。 使用这个,你可以简单地把你的钥匙放到你的机器上,它会照顾到你的权限等等。

这是我在我的configuration中:

 ssh_authorized_key { 'root pub key': ensure => present, key => "yourkeyhere", name => "name@server", user => "user", type => "ssh-rsa", 

您可以在这里查看相关文档。

否则,有些模块是由其他人编写的,但它们做了相同的事情,但给了一些额外的选项,因为ssh_authorized_keytypes有什么限制。