Наутилус "расширение в терминале" не будет распространяться SSH_AUTO_SOCK?
У меня 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 команды в терминалах, открываемых по щелчку правой кнопкой мыши "Открыть в терминале" из окон nautilus, постоянно спрашивали мою пароль; в результате дальнейших исследований выясняется, что нормальная оболочка, запущенная с CTRL-ALT-T или с тире, имеет:
[romano:~] % env | grep -i ssh
SSH_AUTH_SOCK=/run/user/1153/keyring-S6rI11/ssh
в то время как в оболочке "открыть в терминале" у меня нет никаких следов этой переменной среды:
[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
переменная оболочки не передается? Можно ли этого избежать?
3 ответа
Для этой проблемы есть отчет об ошибке панели запуска: # 1411174
ОК, это ошибка. Вероятно, nautilus
проблема запускается до оболочки, которая устанавливает SSH*
переменные.
Временное решение
(Некрасиво).
- открыть терминал
- убить файловый менеджер:
nautilus -q
- перезапустите его снова:
nautilus & disown %%
в фоновом режиме и отдельно. - закрыть терминал
Теперь новый nautilus
сеанс на рабочем столе происходит от оболочки с SSH_AUTH_SOCK
правильно настроен, и у порожденного терминала все будет в порядке.
До тех пор nautilus
падает или умирает по любой причине. В этом случае повторите.
Не уверен, что это хорошее решение, я добавил следующую строку в ~/.profile
:
export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
Мой ключ разблокирован при входе в систему.