17.6. Вход без пароля с использованием ssh-agent

Проблема
Вводить пароли утомительно, особенно если они состоят из нескольких слов. Тре буется использовать OpenSSH для открытия подключений без ввода пароля (но
при этом сохранить защиту подключения).
Решение
Начните с настройки открытого и закрытого ключей (см. раздел 17.3), а затем вос пользуйтесь ssh-agent. Эта программа обрабатывает запросы на аутентификацию
при подключении к различным системам через SSH. Пароль вводится только один
раз, в начале сеанса SSH; после выхода из сеанса его придется вводить заново.
Ssh-agent не позволит запланировать пересылку данных через SSH из сгоп —
о том, как это делается, рассказано в разделе 17.8.
Прежде всего запустите ssh-agent с указанием используемого командного про цессора:
$ ssh-agent bash
После появления стандартного приглашения запустите утилиту ssh-add, кото рая загружает все ключи из каталога ~/.ssh:
$ ssh-add
Enter passphrase for /home/jenn/.ssh/idrsa:
Identity added: /home/jenn/.ssh/idj-sa (/home/jenn/.ssh/idrsa)
Enter passphrase for /home/jenn/.ssh/apache_key:
Identity added: /home/jenn/.ssh/idrsa (/home/jenn/.ssh/apachekey)
В дальнейшем вы сможете войти на любой хост SSH без ввода пароля:
jenn@windbag:$ ssh powerpc
Linux powerpc 2.4.21 #1 Sun Aug 3 20:15:59 PDT 2003 i686 GNU/Linux
Libranet GNU/Linux
Last Login: Web Feb 7 18:28:20 2004 from windbag.test.net
jennOpowerpc:~$
Чтобы завершить работу ssh-agent, просто выйдите из командного процессора
ssh-agent:
S exit
Комментарий
Поскольку пароли и ключи ассоциируются с конкретным процессом Bash, при
выходе из командного процессора ssh-agent они пропадают. Если запустить вто рой командный процессор для запуска другой копии ssh-agent, пароль придется
вводить заново, даже если первый процесс остается активным.
Чтобы узнать, какие ключи использует ssh-agent, введите команду
$ ssh-add -1
1024 65:91:77:71:24:66:46:ea:cb:00:fe:83:ad:b8:4a:34 /home/jenn/.ssh/id_rsa (RSA)
1024 da:f7:27:6a:37:4e:a5:bb:ld:00:c7:a8:e9:fe:23:d8 /home/jenn/.ssh/apachekey (RSA)
Чтобы команда сработала, необходимо вернуться к локальному командному
процессору ssh-agent и не быть подключенным к удаленному хосту. При подклю чении работой терминала управляет удаленный хост, и вы получите сообщение
об ошибке «Could not open a connection to your authentication agent».
Команда ssh-add позволяет загружать конкретные ключи:
$ ssh-add /home/jenn/adminkeys/id_rsa_http
и удалять ключи из активного сеанса ssh-agent (при этом ключ не удаляется из
системы):
$ ssh-add -d /home/jenn/.ssh/id_dsa
Identity removed: /home/jenn/.ssh/iddsa (/home/jenn/.ssh/idjdsa.pub)
Следующая команда удаляет все ключи:
$ ssh-add -D
All identities removed.
См. также
Ssh(l), ssh-add(l), ssh-agent(l).