Как вручную вызвать диалоговое окно ssh add?

Запуск ssh-add в командной строке больше не разблокирует ключи ssh в моей системе (Ubuntu 11.10 с Unity). Даже после того, как я запустил ssh-add, когда я ssh на сервер, у меня появляется диалоговое окно, чтобы спросить меня о моей ключевой фразе ssh-ключа. После этого все работает как положено.

ssh-agent работает. При первом входе в систему:

$ ps -ef | grep ssh-agent
mish      1853  1818  0 18:55 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session --session=ubuntu

Как правильно разблокировать ключ ssh без необходимости подключения ssh к серверу? (Ручное открытие диалогового окна с ключом ssh будет в порядке решения, но я не знаю, как это сделать).

Мой пример использования: я использую tmuxinator и хочу установить несколько соединений ssh. Поэтому я хочу, чтобы ключ ssh был разблокирован. В противном случае все диалоговые окна с ключом ssh всплывают, и мне приходится вводить фразу-пароль несколько раз. Или я могу ssh где-нибудь перед запуском tmuxinator, но соединение здесь медленное, так что это только добавляет трения. Поэтому я хочу разблокировать ключ ssh перед запуском tmuxinator, без необходимости сначала ssh где-нибудь.

Редактировать

Только что попытался выйти и снова войти в систему. Затем я сделал:

$ env | grep -i ssh
SSH_AGENT_PID=8693
SSH_AUTH_SOCK=/tmp/keyring-Ho4cfE/ssh
$ ssh-add -D
All identities removed.
$ ssh-add -l
1024 b8:12:34:56[...]:19 name@computer (DSA)
$ ssh-add
Enter passphrase for /home/name/.ssh/id_dsa: 
Identity added: /home/name/.ssh/id_dsa (/home/mish/.ssh/id_dsa)
$ ssh-add -l
1024 b8:12:34:56[...]:19 /home/name/.ssh/id_dsa (DSA)
1024 b8:12:34:56[...]:19 name@computer (DSA)
0 mish@mishtop:~$ ssh server

В этот момент меня снова попросили ввести пароль в диалоговом окне GUI. Разочарование ...

Также интересно, что после «Все идентификаторы удалены», что ssh-add -l все еще показывает идентичность. Это смущает меня. И, похоже, работает только один ssh-агент.

Редактировать 2:

Я нашел ошибку на панели запуска по этому поводу: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/841672

]

Однако этот вопрос был о поиске обходного пути, а не о том, почему это не сработало, поэтому я надеюсь, что этот вопрос не изменится.

Редактировать 3:

Ничего необычного в /etc/ssh/ssh_config - я не трогал. У меня есть ~/.ssh/config, но это просто порты и имена пользователей.

Я наблюдал, какие процессы выполнялись, когда всплыло диалоговое окно, и это было /usr/lib/gnome-keyring/gnome-keyring-prompt-3, запущенное /usr/bin/gnome-keyring-daemon --daemonize --login. Я попытался запустить приглашение из терминала, но ничего не произошло. Так что все еще застрял.

6
задан 23 April 2012 в 14:34

3 ответа

Редактировать

Это запускает графическое приглашение для моего пароля ssh, но оно отличается от того, которое фактически позволяет ssh использовать ключ ssh. Даже после того, как я это сделал, у меня все еще появляется приглашение с графическим интерфейсом для запроса моей ключевой фразы ssh: /

См. Edit 3 в вопросе выше для получения дополнительной информации.

Оригинал

Я нашел способ вызвать его в конце. Я создал ~/bin/gssh-add и вставил в него следующее:

SSH_ASK_PASS=/usr/bin/ssh-askpass ssh-add

Затем я делаю его исполняемым:

chmod +x ~/bin/gssh-add

И затем запускаю его, используя Alt + F2. Это вызывает диалоговое окно гнома.

Обратите внимание, что если вы запустите gssh-add из терминала, он не вызовет диалоговое окно гнома. Смотрите раздел ENVIRONMENT на странице руководства ssh-add , чтобы узнать, почему.

0
ответ дан 23 April 2012 в 14:34

Или я могу ssh где-нибудь перед запуском tmuxinator, но соединение здесь медленное, так что это только добавляет трения.

Не забывайте, что ваше ' где-то ' не обязательно должно быть удаленным:

ssh localhost

Вот как я обычно это делаю.

(Затем я набираю ^D в новом приглашении оболочки, чтобы выбросить его и вернуться к моему старому. Если вы не возражаете против дополнительных нажатий клавиш, такая команда, как ssh localhost true, является более подходящей альтернативой.) [ 118]

Конечно, это работает только в системах, которые запрашивают SSH-ключи (например, после использования ssh-copy-id), но из вашего вопроса это звучит так, как будто вы, вероятно, уже получили это.

0
ответ дан 23 April 2012 в 14:34

Не прямой ответ на поставленный выше вопрос, а обходной путь для основной проблемы:

Остановить запуск ssh-agent для gnome-keyring ssh-agent. Тогда ssh-agent, ssh-add и ssh работают как положено. (Или, по крайней мере, как я ожидаю).

Чтобы остановить запуск ssh-agent для gnome-keyring, выполните:

sudo mv /etc/xdg/autostart/gnome-keyring-ssh.desktop /etc/xdg/autostart/gnome-keyring-ssh.desktop.disabled
0
ответ дан 23 April 2012 в 14:34

Другие вопросы по тегам:

Похожие вопросы: