我正在安装 20 台服务器。
在每个特定用户上,我创建了一个 dsa 密钥。
我cat key.pub
从每台服务器到~/.ssh/authorized_keys
第一台服务器
我验证了所有服务器都可以在没有密码的情况下登录到第一台服务器。
使用 puppet,我将.ssh/authorized_key
第一台服务器复制到所有其他服务器。
权限一样,600
我无法自动登录;它仍然适用于从服务器到第一个 - 但不适用于任何其他服务器。我以用户身份登录,ssh 到其他服务器 - 它要求我输入密码。
我重新启动了 sshd 服务,但没有用。/etc/ssh/sshd_config 在第一台服务器和所有其他服务器上是相同的。
这是 RHEL6。
有任何想法吗?我做错什么了吗?
这是人偶文件;现在可以用了——我的根是 775
file {"/home/user":
owner => user,
group => user,
ensure => directory,
mode => 755,
}
file {"/home/user/.ssh":
owner => user,
group => user,
ensure => directory,
mode => 700,
}
file {"/home/user/.ssh/authorized_keys":
owner => user,
group => user,
ensure => file,
mode => 600,
source => "puppet://puppet/files/user_sshkeys.txt";
}
目录的权限
~/.ssh
应该是700
。该~/.ssh/authorized_keys
文件的权限应为600
. 您可能希望限制用户对用户主目录的写入权限。不要使用
cat
,而是尝试使用ssh-copy-id
命令,因为它会处理这些权限。你能告诉我们你的 Puppet 文件指令是什么样子的吗?这可能可以在那里得到纠正。
您尝试设置的称为“基于主机的身份验证”。对此进行网络搜索,您会找到所需的内容。这是一个高级 SSH 主题,一旦完成就很容易做到。
Puppet(在我写这篇文章时,版本 3.1.1)有一个名为
ssh_authorized_key
. 使用这个你可以简单地将你的密钥推送到你的机器,它会为你处理权限等。这是我的配置中的内容:
您可以在此处查看相关文档。
否则,有些模块由其他人编写,它们做的事情大致相同,但提供了一些额外的选项,因为该类型的功能有一些限制
ssh_authorized_key
。