Crie muitos usuários ssh com PK em muitos hosts

Crie muitos usuários ssh com PK em muitos hosts

Quero adicionar um ou mais novos usuários com suas chaves públicas em vários hosts (onde tenho ssh root sem senha). Claro que posso fazer isso manualmente. Tem como fazer isso aromaticamente?

Responder1

Existem muitas maneiras de fazer isso programaticamente. Eu escrevi scripts para enviar usuários e credenciais/chaves de um servidor de controle para outros sistemas sob demanda, e softwares de automação como Puppet, Chef e CFEngine também fazem isso usando um mecanismo pull.

Você provavelmente também poderia vinculá-lo ao LDAP. (https://serverfault.com/questions/653792/ssh-key-authentication-using-ldap#653793)

Responder2

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
}

informação relacionada