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

Я не хочу, чтобы 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

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

8 ответов

Просто скопируйте соответствующий .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.

Кредит идет к нам.

Я не могу говорить о выпусках 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/autostart а также gnome-keyring, и многое другое в обоих (и это, вероятно, работает в /usr/share/upstart/xdg/autostart, тоже; Я не проверял это).

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

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

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

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

sudo apt-get remove gnome-keyring

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

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

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

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

Решение: отключить gnome-keyring с помощью dpkg-divert

      sudo dpkg-divert --local --rename /usr/bin/gnome-keyring-daemon 

В следующий раз, когда вы войдете в систему, он исчезнет. Эта одна строка - все, что вам нужно, но читайте дальше для объяснений и предупреждений.

Краткое объяснение

Это решение переименовывает программу в gnome-keyring-daemon.distrib, чтобы ее нельзя было найти.

Когда вы входите в систему, вместо того, чтобы gnome-keyring пытался обработать ssh-интеграцию, запросы на пароль будут направляться непосредственно ssh-agent. Вы можете разблокировать свой ключ ssh для коммитов git, используя обычныйssh-addкоманда.

Предостережения и раскаяние

Gnome Keyring глубоко переплетен с рабочим столом Gnome. Без него некоторые вещи могут перестать работать, пока не будет установлена ​​замена.

Чтобы снова включить связку ключей Gnome

      sudo dpkg-divert --remove --rename /usr/bin/gnome-keyring-daemon 

Возможно, вы используете Gnome Keyring и не знаете об этом

Многие приложения, которые могут сохранять ваши пароли, такие как Chromium и Evolution, шифруют их с помощью мастер-ключа, хранящегося в Gnome Keyring. Отключение Gnome Keyring предотвращает доступ ко всем этим сохраненным паролям. Перед отключением Gnome Keyring рекомендуется сделать резервную копию сохраненных паролей.

Резервное копирование связки ключей Gnome

Вы можете сделать резервную копию своих ключей, скопировав файлы в ~/.local/share/keyrings/. Секреты зашифрованы, поэтому, в зависимости от вашей позиции в области безопасности, вы можете захотеть сохранить их в виде обычного текста. Для этого используйте программу «Пароли и ключи» (также известную как «Морской конек»), чтобы временно установить пустой пароль для брелока входа. (Совет: Seahorse скрывает параметр смены пароля в контекстном меню, вызываемом правой кнопкой мыши.)

Предупреждение: пароли могут храниться в открытом виде

Chromium и Google Chrome полагаются на демона под названием «Секретная служба», чтобы получить ключ шифрования для сохраненных паролей. Если секретная служба отсутствует, что произойдет после отключения Gnome Keyring, они сохранят ваши пароли в незашифрованном виде. В отличие от Firefox, браузеры на основе хрома в настоящее время не позволяют вручную установить основной пароль.

Интеграция секретной службы Freedesktop.org

Gnome Keyring — это только одна из программ, которые могут выступать в роли демона секретной службы. Чтобы сохраненные пароли были зашифрованы в Chromium и Evolution, вы можете установить keepassxc и включить Secret Service в настройках.

Дальнейшее объяснение

Почему бы просто не использоватьchmodили жеmv?

Изменения через chmod или mv отменяются при обновлении системы. При использовании dpkg это решение будет сохраняться при любых условиях, даже при обновлении до новой версии Ubuntu.

Есть ли менее радикальный способ?

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

Почему другие методы не работают

За прошедшие годы было предложено множество различных решений, которые были сломаны в следующем выпуске. Вот краткий обзор почему бы и нет.

Настройка брелка Gnome

Идеальным решением было бы правильно настроить Gnome Keyring. На самом деле есть опция командной строки--componentsчто почти работает. Это позволяет указать, какие компоненты инициализировать:

      gnome-keyring-daemon --components secrets,ssh,pkcs11

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

apt удалить gnome-keyring

Очевидное решение удаления пакета gnome-keyring также удаляет все пакеты, которые зависят от него, включая gnome-core. Хотя есть способы обойти это, легко случайно удалить всю среду рабочего стола GNOME.

Несколько векторов атаки

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

  1. PAM (подключаемые модули аутентификации) в /etc/pam.d/gdm-password
  2. пользовательская служба systemd и сокет
  3. Пользовательский сеанс systemd.slice в /usr/share/dbus-1/services/
  4. Автозапуск XDG в /etc/xdg/autostart/gnome-keyring-*.desktop

Для меня это отлично сработало:

$ unset GNOME_KEYRING_CONTROL

Я видел это решение здесь

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

#!/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

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

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

Вы можете увидеть мой полный ответ на эту тему /questions/453205/xubuntu-ostanovite-gnome-keyring-daemon-ot-olitsetvoreniya-ssh-agent/453217#453217

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