3

Я могу настроить SSH без пароля для одного пользователя, выполнив следующие действия:

1) Сгенерируйте пару ключей RSA для локальной машины в ~/.ssh

2) Скопируйте открытый ключ локального компьютера в ~/.ssh/authorized_keys удаленного компьютера

Но есть ли способ сделать это действие для всех пользователей? Возможно, делаете те же шаги, что и выше в /root/.ssh или что-то? Или есть хороший способ для пользователя root развернуть ключи и изменить списки авторизованных ключей в каталоге каждого пользователя ~ /.ssh?

Благодарю.

2 ответа2

2

Если вы хотите предоставить всем пользователям доступ без пароля к одному удаленному хосту, то OpenSSH поддерживает аутентификацию с открытым ключом на основе хоста, при которой пользовательский ключ хоста клиента проходит аутентификацию на сервере и /etc/ssh/shosts.equiv для авторизовать пользователей.

Здесь есть хорошее руководство о том, как его настроить: http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Host-based_Authentication

0

Как насчет этого?

for u in $USERLIST; do
    su $u
    ssh-keygen [options] -f /home/$u/.ssh/id_rsa
    scp /home/$u/.ssh/id_rsa.pub $REMOTEHOST:/home/$u/.ssh/authorized_keys
    exit
done

Конечно, для этого нужно набрать много паролей для scp. Вы можете сделать все это как root, чтобы избежать ввода паролей (при условии, что ваш ssh для root настроен без пароля), но тогда вам нужно будет все chown :

for u in $USERLIST; do
    ssh-keygen [options] -f /home/$u/.ssh/id_rsa

    # assuming "users" is the common group on the system
    chown $u:users /home/$u/.ssh/id_rsa

    # use -a to preserve ownership
    rsync -av /home/$u/.ssh/id_rsa.pub $REMOTEHOST:/home/$u/.ssh/authorized_keys
done

И, конечно, вам нужно убедиться, что домашний каталог каждого пользователя и каталог .ssh имеют правильные разрешения (на обеих машинах), когда вы закончите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .