SDB:Использование ssh-agent в сеансах X

(перенаправлено с «Using ssh-agent globally for X session»)
Перейти к: навигация, поиск
User-away.png Данная статья является устаревшей, поскольку:
Проверить и если надо обновить до английской

Если она в течение некоторого времени не будет обновлена, то она может быть удалена. Пожалуйста, обновите эту статью. Обратитесь к странице обсуждения этой статьи для получения подробной информации.

Описание

В окружениях, где часто используется аутентификация с открытым ключом, достаточно неудобно вводить Вашу идентификационную фразу каждый раз, когда Вы подключаетесь по 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-агента