Создайте много пользователей ssh ​​с PK на многих хостах

Создайте много пользователей ssh ​​с PK на многих хостах

Я хочу добавить одного или нескольких новых пользователей с их открытыми ключами на многих хостах (где у меня есть root ssh без пароля). Конечно, я могу сделать это вручную. Есть ли способ сделать это ароматически?

решение1

Есть много способов сделать это программно. Я написал скрипты для передачи пользователей и учетных данных/ключей с сервера управления в другие системы по требованию, и программное обеспечение автоматизации, такое как Puppet, Chef и CFEngine, также делает это, используя механизм pull.

Вероятно, вы также могли бы связать его с 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
}

Связанный контент