У меня Ubuntu Gnome 14.04, обновленный; nautilus и nautilus-open-terminal установлены и обновлены:
[romano:~] % wajig status nautilus nautilus-open-terminal
Package Installed Previous Now State
=======================-===============-===============-===============-=====
nautilus 1:3.10.1-0ubuntu9.7 1:3.10.1-0ubuntu9.7 1:3.10.1-0ubuntu9.7 install
nautilus-open-terminal 0.20-1 0.20-1 0.20-1 install
Я заметил, что команды ssh, полученные в терминалах, открытых щелчком правой кнопкой мыши «Open in terminal» из окна nautilus, спрашивали меня ключевая фраза; при дальнейших исследованиях это приводит к тому, что нормальная оболочка, начатая с CTRL-ALT-T или с тире, у меня:
[romano:~] % env | grep -i ssh
SSH_AUTH_SOCK=/run/user/1153/keyring-S6rI11/ssh
, а в оболочке «open in terminal» у меня нет следов эта переменная среды:
[romano:~/education … -SAP-135/Lab-8] % env | grep -i ssh
[romano:~/education … -SAP-135/Lab-8] 1 %
... и обычно переменные среды передаются в эту оболочку:
[romano:~/education … -SAP-135/Lab-8] 1 % env | wc -l
70
Почему переменная оболочки SSH_AUTH_SOCK не передается? Можно ли это избежать?
Хорошо, это ошибка. Вероятно, проблема nautilus запускается перед оболочкой, которая устанавливает переменные SSH*.
(уродливый).
открыть терминал, убить файловый менеджер: nautilus -q перезапустить его снова: nautilus & disown %%, в фоновом режиме и отсоединен. закройте терминалТеперь новый сеанс nautilus на рабочем столе является потомком из оболочки с правильной настройкой SSH_AUTH_SOCK, и у порожденного терминала все будет в порядке.
Пока nautilus не сработает или не умрет по какой-либо причине. В этом случае повторите.
Не уверен, что это хорошее решение, я добавил следующую строку в ~/.profile:
export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
Мой ключ разблокирован при входе в систему.