我想在多台主机上添加一个或多个新用户及其公钥(我有无密码的 root ssh)。当然我可以手动完成。有没有办法芳香地做到这一点?
答案1
有很多方法可以通过编程来实现。我编写了脚本,根据需要将用户和凭证/密钥从控制服务器推送到其他系统,而像 Puppet、Chef 和 CFEngine 这样的自动化软件也可以使用拉取机制来实现这一点。
您可能还可以将其与 LDAP 联系起来。(https://serverfault.com/questions/653792/ssh-key-authentication-using-ldap#653793)
答案2
init-user-on-host() # <username> <id_rsa.pub file> <remote host>
{
cat $2 | ssh root@$3 \
"set -x; adduser --quiet --gecos '' --disabled-password $1;" \
" su -l $1 -c 'mkdir -p .ssh;" \
"cat >> .ssh/authorized_keys;" \
"ls -RA; cat .ssh/authorized_keys' "
ssh $1@$3 echo OK
}
init-users-on-hosts()
{
for u in $users; do
for h in $hosts; do
init-user-on-host $u $u.id_rsa.pub $h
done
done
}