В OpenSSH предусмотрена возможность использования существующих соединений, при повторном коннекте к хосту.При этом аутентификация будет осуществлена только при первом соединении, для всех остальных соединениях вводить пароль не потребуется.
Создаем или модифицируем файл ~/.ssh/config:
Host *
ControlMaster auto
ControlPath ~/tmp/%r@%h:%p
В ControlPath определяем параметры управляющего сокета, например, в нашем случае
сокет будет создан в поддиректории tmp домашнего каталога текущего пользователя.
При использовании туннелей, режим ControlMaster следует запретить, используя опцию командной строки:
"-o ControlMaster=no"
Например, для ssh транспорта subversion можно прописать в ~/.subversion/config:
[tunnels]
ssh = ssh -o ControlMaster=no
Для кеширования приватных ключей, созданных командой ssh-keygen и используемых
для публичной идентификации в OpenSSH можно использовать ssh-agent.
В простейшем случае достаточно предварить запуск терминальной сессий вызовом ssh-agent:
ssh-agent gnome-terminal
Далее выполняем
ssh-add
и вводим пароль для доступа к ключу ~/.ssh/id_rsa (путь к файлу с ключом может быть
задан в качестве аргумента), после чего в пределах процесса gnome-terminal вводить пароль не потребуется.
Обычно ssh-agent выпоняют в привязке ко всей X сессии пользователя, напирмер,
в Ubuntu запуск x-session-manager под управлением ssh-agent уже прописан в /etc/X11/Xsession.options
Вручную, прописать запуск ssh-agent можно в .xsession, например, для старта gnome-session:
ssh-agent gnome-session
URL: http://www.revsys.com/writings/quicktips/ssh-faster-connecti...
Обсуждается: http://www.opennet.dev/tips/info/1763.shtml