SDB:Использование ssh-agent в сеансах X
Данная статья является устаревшей, поскольку: Проверить и если надо обновить до английской Если она в течение некоторого времени не будет обновлена, то она может быть удалена. Пожалуйста, обновите эту статью. Обратитесь к странице обсуждения этой статьи для получения подробной информации. |
Содержание
Описание
В окружениях, где часто используется аутентификация с открытым ключом, достаточно неудобно вводить Вашу идентификационную фразу каждый раз, когда Вы подключаетесь по ssh к службе или серверу. ssh-agent - служба, работающая в фоновом режиме, которая хранит Вашу идентификационную фразу и вставляет ее автоматически, избавляя Вас от надоедливого ввода - но работает она только в консоли (и ее подпроцессов), в которой была запущена. Нижеследующее описывает, как запустить ssh-agent глобально, то есть для всей Х-сессии, следовательно и для всех приложений, использующих ключи SSH для аутентификации.
Эта инструкция проверена на работоспособность в
$> uname -a Linux box 2.6.13-8-smp #1 SMP Tue Sep 6 12:59:22 UTC 2005 i686 i686 i386 GNU/Linux
$> cat /etc/SuSE-release SUSE LINUX 10.0 (i586) OSS VERSION = 10.0
Приготовление
Откройте консоль и убедитесь, что все соответствующие rpm-пакеты установлены
$> rpm -qa | grep -i ssh openssh-askpass-' pam_ssh-версия openssh-версия
версия в выводе консоли - это фактический номер версии rpm-пакета. Особенно важен пакет openssh-askpass - это простой GUI (графический пользовательский интерфейс), который позволяет Вам вводить идентификационную фразу.
Инструкция
Для того, чтобы SSH-агент работал в Х-сессии, Вам необходимо создать два файла: .xsession и .xinitrc
Файл .xsession
Откройте консоль и скопируйте системный скрипт xsession в Ваш домашний каталог и переименуйте его в .xsession:
$> cp /etc/X11/xdm/sys.xsession ~/.xsession
Отредактируйте файл
$> vi ~/.xsession
Включите отображение номеров строк в vi. Это Вам поможет
:set number
Найдите следующие строки и установите для них эти параметры
9 usessh="yes" 78 sshagent="yes" 79 SSH_ASKPASS="/usr/lib/ssh/x11-ssh-askpass"
Учтите, что на 64-битных системах openssh-askpass находится в /usr/lib64/ssh/x11-ssh-askpass
Сохраните файл и выйдите из редактора (ESC :wq).
Файл .xinitrc
Откройте консоль и скопируйте файл-шаблон .xinitrc.template в Ваш домашний каталог переименовав его в .xinitrc
$> cp ~/.xinitrc.template ~/.xinitrc
Отредактируйте файл
$> vi ~/.xinitrc
Опять-же, включите отображение номеров строк в vi
:set number
Найдите строку 105 или закомментированную команду ssh-add, ей соответствующую
105 # ssh-add
Раскомментируйте ее и сохраните файл
105 ssh-add ESC :wq
Всё! Теперь выйдите из Х-сессии, а потом войдите заново.
После удачнй аутентификации openssh-askpass попросит Вас ввести Вашу идентификационную фразу.
Инструкция (pam_ssh)
Откройте консоль и отредактируйте файл /etc/pam.d/xdm, добавив следующие строки:
#%PAM-1.0 auth sufficient pam_ssh.so auth include common-auth account include common-account password include common-password session include common-session session required pam_ssh.so session required pam_devperm.so session required pam_resmgr.so
Это позволит Вам проходить аутентификацию в KDM и GDM с Вашей идентификационной фразой и использовать ее для запуска ssh-агента