首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSH PKI认证

SSH PKI认证
EN

Unix & Linux用户
提问于 2020-05-27 20:18:32
回答 1查看 174关注 0票数 0

在我的公司,我们目前正在将AD身份验证集成到Linux服务器上。我已经能够使用PBISO ()完成这个部分。用户可以使用AD帐户登录。

我们现在更进一步,我的任务是通过公钥启用无密码登录。这就是我有问题的地方。为了实现这一点,我几乎需要将每个用户的公开密钥都粘贴到他们的~/..ssh/authorized_keys上。但这是不切实际的,而且效率极低。我需要找到一种自动化的方法。你可能会说这是可以照本宣科的,但我相信这是一个更深的兔子洞。无法手动创建广告主目录。

我想出的一个变化是将用户重定向到/home/ group 1/这样的组目录。因此,我已经创建了这个本地用户group1,然后在/home/group1 1/..ssh/authorized_keys中添加了aduser来测试这一点。当我作为用户使用SSH时,它是询问密码,而不是使用密钥。只有当我作为group1本地用户使用ssh时,它才能工作。

问:您能将公钥存储到本地用户~/..ssh/authorized_ keys并以不同的用户登录吗?如果这是可行的,我怎样才能让它发挥作用?

我的目标是让用户使用他们的AD帐户登录,重定向到/home/group1 1/,并使用authorized_keys进行无密码身份验证。

如有任何意见,我们将不胜感激。谢谢。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-05-29 16:02:39

我找到了解决我的任务,并感谢@PhilipCouling输入。

我在/etc/ssh/sshd_config中启用了AuthorizedKeysCommand和AuthorizedKeysCommandUser来运行一个查找脚本,该脚本将获取公钥。

AuthorizedKeysCommand /sshkey-check.sh AuthorizedKeysCommandUser root

在此脚本中,我在散列数组中添加了用户密钥,并回显相应的密钥以进行身份验证。

ssh域\aduser1 1@centosbox

代码语言:javascript
复制
#!/bin/bash

declare -A keys

# remove the domain name and the backslash from the username entered, i.e. domain\
user=$(echo $1 | sed 's@.*\\@@') 

keys[aduser1]="public key"
keys[aduser2]="public key"
keys[aduser3]="public key"

echo ${keys[${user}]}
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/589374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档