Как отключить интеграцию gshome-keyring ssh?


10

Я не хочу, чтобы gnome-keyring мешал моим git коммитам, частично потому, что он блокирует весь экран при запросе пароля, даже в KDE (хотя я сейчас переключился на GNOME). В то время как я ценю удобство отсутствия необходимости вводить мою парольную фразу SSH каждый раз, необходимость перехода от окна к окну отменяет это лично. Это просто вещь комфорта: /

Я пытался git config --global --unset credential.helperи git config --system --unset credential.helper, но они, кажется, не имеют никакого эффекта. Поскольку я сейчас использую GNOME, я бы не стал удалять gnome-keyring. Есть ли другой вариант, который я могу сделать? В настоящее время я нахожусь на Ubuntu 14.10, проделав это как с Kubuntu, так и с Ubuntu GNOME. Спасибо.

ОБНОВЛЕНИЕ 17 ноября 2014

Это, видимо, влияет на весь SSH. Я пытался делать

sudo rm /etc/xdg/autostart/gnome-keyring-ssh.desktop

но это не сработало. Я могу сделать

gnome-keyring-daemon --replace -c pkcs11,secrets,gpg

один раз в каждой сессии, но я хотел бы сохранить это постоянным. Все еще ищу...


Вопросы и ответы по поводу того,
ошибками

Ответы:


10

Просто скопируйте соответствующий .desktopфайл из /etc/xdg/autostartв ~/.config/autostartи добавьте Hidden=trueк нему:

(cat /etc/xdg/autostart/gnome-keyring-ssh.desktop; echo Hidden=true) > ~/.config/autostart/gnome-keyring-ssh.desktop

затем перезагрузите gnome-shell (нажмите Alt+ F2, затем введите rи нажмите Enter).

Это единственное удобное для меня решение , которое сработало для меня (т. Е. Не нужно мягко связывать файл .desktop с / dev / null или chmod 0с gnome-keyring-daemon). На самом деле, в GNOME 3.16 у меня перестали работать ссылки на / dev / null .

Заслуга НУК .


5
Кажется, это больше не работает в 16.04. Почему, похоже, в каждом выпуске Ubuntu новый метод запуска вещей заново изобретается? Что случилось со старым добрым Xsession? :(
Фил Фрост

Кто-то, пожалуйста, подтвердите его для более новых версий Ubuntu / Debian / GNOME.
Георгий Советов

В Ubuntu 17.10 (GNOME Wayland) перезапуск GNOME больше невозможен. См. Superuser.com/q/1164174/174311 . Используйте, gnome-keyring-daemon -r -c pkcs11,secretsчтобы отключить его в текущем сеансе.
Георгий Советов

Он все еще работает с Debian 9 (растянуть).
Марк Вробель

2

Хороший, чистый способ отключить только компонент ssh-agent в gnome-kerying:

gconftool-2 --set --type bool /apps/gnome-keyring/daemon-components/ssh false

2
Кажется, это не работает, по крайней мере, пока. Требуется ли GNOME 3.14 или 3.16 или gnome-keyring-daemon 3.12+?
andlabs

3
Кто-нибудь знает, что представляет собой приведенная выше версия ubuntu 16.04?
Скотт Стенсленд,

2

Я не могу говорить о выпусках Ubuntu, кроме Trusty - и GNOME - такая постоянная движущаяся цель, что вы можете гарантировать, что каждый выпуск будет отличаться - но я нашел, что это наиболее надежно работает:

mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-ssh.desktop

Сеанс запуска под Unity, по крайней мере, и вполне вероятно, что GNOME3 тоже странный: он запускает сценарии Upstart из, /usr/share/upstart/sessions/а затем запускает все записи автозапуска рабочего стола в /etc/xdg/autostartand gnome-keyring, и многие другие находятся в обоих (и, вероятно, он запускает в /usr/share/upstart/xdg/autostartтоже самое, я не проверял это).

Запись gnome-keyring-sshupstart проверит эту X-GNOME-Autostart-enabled=falseстроку в системной или пользовательской локальной записи .desktop и вернется обратно, после чего ssh-agentбудет запущен стандартный сеанс. После этого система в целом gnome-keyring-sshзапустится, /etc/xdg/autostartесли у вас нет соответствующей записи в локальном автозапуске пользователя, и в этом случае она будет запущена.

Раньше было достаточно просто включить эту enable=falseстроку в локальный автозапуск, но когда-то недавно (как, например, с мая 2016 года, более двух лет в период LTS Trusty) это поведение изменилось, и вам нужно что-то похожее на полную запись. Я все еще изучаю точный набор необходимых ключей и ответственное за обновление пакета.

Почему люди из GNOME не просто прокси связались с ключевым агентом OpenSSH, можно только догадываться . Вы можете предложить им более разумное поведение в этой записи Bugzilla .


Эта ссылка подразумевает, что использование X-GNOME-Autostart-enabled = false не рекомендуется. В любом случае это выглядит так, как если бы свойство Hidden, описанное в стандарте автозапуска, предоставляло ту же функциональность. Используйте Hidden = true. gist.github.com/najamelan/b44e943145b03e018229
nomadrc

2

Я всегда заканчиваю тем, что удаляю gnome-keyring

sudo apt-get remove gnome-keyring

Оказывается, если вы используете много ключей (более трех), вы не можете войти в систему на хостах, ограничивающих попытки до трех ... Кроме того, gnome-keyringимена ключей называются иначе, чем при использовании ssh-add, поэтому я не знаю, какую фразу-пароль использовать ,

Удаление gnome-keyringможет сломать много вещей в GNOME, я не знаю, как я использую Kubuntu. На Kubuntu все что пропадает в дополнение - это python-ubuntu-sso-clientи есть ubuntu-sso-client.


1
Извините за задержку с ответом. Это то, что я думал, что делал, когда у меня был Kubuntu (и потребовалось время, чтобы понять это), но теперь я не так уверен. На данный момент, хотя, так как брелоке является частью GNOME, удаление , что бы удалить ubuntu-gnome-desktopи несколько других связанных компонентов ( oneconf, python-ubuntu-sso-client, seahorse, software-center, и ubuntu-sso-client, не считая программное обеспечение , которое становится autoremove кандидатов как результат): / Спасибо , хотя; Я поддержу вас, потому что это поможет пользователям, не являющимся пользователями GNOME, которые случайно оказались в такой ситуации, как я.
andlabs

0

Подтверждаю что скрипт

#!/usr/bin/python
import gnomekeyring
gnomekeyring.unlock_sync(None,"mypassword");

решает проблему в 16.04, amd64. Сценарий может быть сохранен как ukr.py, а chmod +x ukr.pyзатем добавить ukr.pyв качестве запуска приложения в gnome-session-properties. (Дополнительный) модуль gnomekeyringустанавливается через

sudo apt-get install python-gnomekeyring

0

Самый простой способ - просто заменить существующий сеанс gnome-keyring-daemon с помощью команды:

gnome-keyring-daemon --replace --daemonize --components=pkcs11,secrets,gpg

Вы можете увидеть мой полный ответ на эту тему https://askubuntu.com/a/786722/556814

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.