使用活动目录的无密码ssh身份验证

时间:2013-08-21 11:04:20

标签: ssh active-directory kerberos ssh-keys

我们当前的基础架构使用ssh密钥无密码登录我们的Linux服务器。 随着我们的基础设施的发展,管理这些授权密钥变得越来越难。

由于我们还有一个Active Directory(AD)服务器,我想使用这种机制通过ssh对用户进行身份验证,但保持ssh密钥的无密码特性。

是否可以使用某种AD机制通过ssh在没有密码的情况下对用户进行身份验证?

3 个答案:

答案 0 :(得分:5)

This is usually done via SSH key certificates in order to keep the password-less nature and at the same time have a Central Authority that can be trusted to generate new certificates for each account.

LDAP/Active directory use on login is not advised - apart from having to use passwords, it also becomes a single point of failure for access to any system it manages.

See RedHat documentation on how to do this and also Facebook's good write up on their use of certificate authentication with SSH.

答案 1 :(得分:3)

选项1

这是一篇很好的文章,解释了如何做到这一点。 Storing SSH keys in Active Directory for easy deployment

基本上,它允许人们将他们的公钥发布到您的Active Directory,然后您可以在服务器上设置一个cron脚本,每隔5分钟左右获取一次公钥。

选项2

您还可以使用包含所有密钥的文件服务器,并使用cron脚本从每个服务器获取每个服务器。显然,您需要一种方法来验证每个密钥的真实性,尤其是在使用FTP或其他不安全协议时。这可以使用GPG实现。您可以拥有一个公司主GPG密钥,用于签署所有员工密钥。

就个人而言,我最喜欢选项2,因为我认为它更安全,但任何一种方法都应该有效。希望这有帮助!

答案 2 :(得分:2)

我的方法是通过

将问题减少到已经解决的问题
  1. 使用Active Directory在没有密码的情况下进行身份验证,并使用Kerberos建立HTTPS连接。 langohr.basic/get可能是这种方法的一个很好的起点。
  2. 将SSH包装到https协议中,请参阅在HTTP中包装SSH(S) <{3}}
  3. 部分