1

У меня есть две виртуальные машины openSUSE 13.1. Оба были настроены для запуска ssh-agent и ssh-add при загрузке KDE. Это делается с помощью файла .bash_profile с использованием следующего кода:

# Load SSH agent

SSH_DIR="${HOME}/.ssh"
SSH_ENV="${SSH_DIR}/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null

     for key in ${SSH_DIR}/{id_rsa}
     do
          ssh-add ${key}
     done
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
    #ps ${SSH_AGENT_PID} doesn't work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi

Это работает на одной из виртуальных машин. При запуске KDE мне предлагается ввести кодовую фразу для моего ключа SSH (но до того, как он будет полностью загружен). Запуск ps указывает только на единственный экземпляр ssh-agent .

На другой виртуальной машине это не работает. Должно быть, я что-то изменил, не задумываясь, потому что это сработало в один момент. У меня вообще не запрашивается пароль SSH. Тем не менее, запуск ps указывает на пару экземпляров ssh-agent работающих и, по-видимому, из разных точек инициации:

 1231 ?        S      0:00 /usr/bin/dbus-launch --sh-syntax --close-stderr --exit-with-session /usr/bin/ssh-agent /etc/X11/xinit/xinitrc
 1233 ?        Ss     0:00 /usr/bin/ssh-agent /etc/X11/xinit/xinitrc

Я предполагаю, что из-за того, что ssh-agent уже запускает, попытка экземпляра через файл .bash_profile завершается неудачно. Я знаю, что если я echo ${SSH_ENV} в системе, она работает, я получаю /home/msnyder/.ssh/environment . То же самое на виртуальной машине, которая не работает, ничего не возвращает.

В прошлом я запускал ssh-askpass через каталог автозапуска KDE. Однако я выбрал более ориентированный на оболочку метод, отсюда и то, что я делаю (и пытаюсь сделать) сейчас.

Я не знаю, что вызывает эту разницу. Записи .bash_profile идентичны. У кого-нибудь есть идея?

РЕДАКТИРОВАТЬ: kdm кажется, запускает ssh-agent . Я не могу понять, почему, хотя.

root       751  0.0  0.0  24612   308 ?        Ss   16:42   0:00 /usr/bin/kdm
root       784  1.7 10.7 282468 110040 tty7    Ssl+ 16:42   0:29  \_ /usr/bin/Xorg -br :0 vt7 -nolisten tcp -auth /var/lib/kdm/AuthFiles/A:0-eGk8Rb
root      1086  0.0  0.0  78344   556 ?        S    16:42   0:00  \_ -:0         
msnyder   1110  0.0  0.0  13092   304 ?        Ss   16:42   0:00      \_ /bin/sh /usr/bin/startkde
msnyder   1233  0.0  0.0  12564    76 ?        Ss   16:42   0:00          \_ /usr/bin/ssh-agent /etc/X11/xinit/xinitrc

Насколько я знаю, я не настроил KDE/kdm для этого.

0