Erstellen Sie viele SSH-Benutzer mit PK auf vielen Hosts

Erstellen Sie viele SSH-Benutzer mit PK auf vielen Hosts

Ich möchte einen oder mehrere neue Benutzer mit ihren öffentlichen Schlüsseln auf mehreren Hosts hinzufügen (wo ich passwortloses Root-SSH habe). Natürlich kann ich das manuell machen. Gibt es eine Möglichkeit, das aromatisch zu machen?

Antwort1

Es gibt viele Möglichkeiten, dies programmgesteuert zu tun. Ich habe Skripte geschrieben, um Benutzer und Anmeldeinformationen/Schlüssel bei Bedarf von einem Kontrollserver auf andere Systeme zu übertragen, und Automatisierungssoftware wie Puppet, Chef und CFEngine tun dies ebenfalls mithilfe eines Pull-Mechanismus.

Sie könnten es wahrscheinlich auch mit LDAP verknüpfen. (https://serverfault.com/questions/653792/ssh-key-authentication-using-ldap#653793)

Antwort2

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
}

verwandte Informationen