我正在安装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_key
types有什么限制。