Как отключить брелок для SSH и GPG?

19

Как отключить брелок для SSH и GPG?

Я хотел бы сохранить брелок для Wi-Fi и другие вещи. Я использую Ubuntu 12.04.

brodul
источник
1
Разве вы не можете просто отказаться сохранить эти пароли в связке ключей? Для стандартного ssh пароль не будет сохранен, если вы не настроите его таким образом, по моему опыту.
Марти Фрид
Я не знаю. Есть ли способ сбросить брелок. Чтобы проверить это? Заголовок в теме содержал Ubuntu 12.04 LTS, но @ jorge-castro изменил его.
бродул
Брелок для ключей не сильно изменился за последнее время, но я добавил его в вопрос для ясности, не нужно, чтобы он загромождал заголовок, хотя ответ, вероятно, будет применяться к нескольким версиям.
Хорхе Кастро
Извините за вопрос noob, но какова ваша мотивация для отключения набора ключей для SSH?
Стефан
1
@Stephane Я не могу говорить за OP, но я не хочу, чтобы информация была настолько критичной. Я бы предпочел вводить пароль ssh-ключа каждый раз, когда я подключаюсь к какому-либо серверу, чем к хранящему его брелоку, позволяющему любой программе и каждому человеку в моем пользовательском пространстве произвольный ssh-доступ. Конечно, это не имеет смысла для всех, но мотивация здесь понятна
phil294

Ответы:

12

Сначала скопируйте файл /etc/xdg/autostart/gnome-keyring-ssh.desktopв ~/.config/autostart/.

Затем отредактируйте ~/.config/autostart/gnome-keyring-ssh.desktop, чтобы удалить следующую строку:

NoDisplay=true

и добавить следующую строку в конце:

X-GNOME-Autostart-enabled=false

Это должно отключить управление SSH при перезапуске сеанса. Чтобы отключить GPG, сделайте то же самое с файлом /etc/xdg/autostart/gnome-keyring-gpg.desktop.

Pierre-Antoine
источник
Tnx, это наконец решает проблему.
Бродул
7

В терминальном сеансе (используя Ctrl- Alt- T) вы можете остановить процесс gnome-keyring от работы с ssh, используя:

unset SSH_AUTH_SOCK 

Параметр --no-use-agentдоступен для gpg, чтобы избежать использования процесса gnome-keyring с gpg, однако это значение по умолчанию.

Вы можете остановить использование nautilus seahorse-tool с помощью gpg-agent с помощью:

rm `echo $GPG_AGENT_INFO | sed s/:0:1//`

Вы можете полностью остановить процесс gnome-keyring с помощью команды:

kill $GNOME_KEYRING_PID

Каждое из вышеуказанных действий восстанавливается при повторном входе в систему.


Пароли Wi-Fi, доступные для всех идентификаторов пользователей , хранятся в /etc/NetworkManager/system-connections/каталоге, а не хранятся в вашем кольце ключей gnome, поэтому они могут оставаться доступными, если вы убьете процесс gnome-keyring.

ssh-addКоманда может быть использована для удаления (или добавить) конкретные ключи с / к текущей брелок гнома в то время как процесс брелока работает.

Отдельные пароли ключей можно удалить из логина или другого набора ключей с помощью Passwordsвкладки Passwords and Keysпрограммы (морской конек).

Если gnome-keyring отсутствует, ssh-agent все еще будет работать, но он не хранит ключи gpg.


/etc/pam.d/lightdmСохранение пароля для входа и запуск демона gnome-keyring-daemon с разблокированным с помощью пароля входа в систему ключом состоит из двух строк . Второй запускает демон:

session optional        pam_gnome_keyring.so auto_start

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

/etc/xdg/autostart/содержит стартовые записи для различных категорий секретов, которые может обрабатывать gnome-keyring. Чтобы демон не запустил эти компоненты, эти файлы могут быть перемещены из этого каталога. Вы можете переместить все файлы gnome-keyring- *, чтобы остановить запуск демона, или просто можете отказаться от ввода пароля для входа еще раз, чтобы отключить брелок для входа в систему, когда демон работает.

Джон С. Грубер
источник
unset SSH_AUTH_SOCK работает. Tnx. Есть ли способ сбросить его для всех сессий? Я использую Enigmail для Thunderbird, и есть проблема с enigmail (он не забывает пароль).
бродул
Есть ли способ отключить брелок при запуске. (Я действительно не хочу писать сценарий, убивающий связку ключей).
Бродул
Я отредактировал ответ с дополнительной информацией, которая может оказаться полезной, однако, возможно, лучше попросить обойти Enigmail непосредственно в отдельном вопросе, четко указав, что вы хотите.
Джон Грубер
Вы можете сбросить связку ключей (забудьте ваши пароли, как gpg, так и ssh и другие), выполнив gnome-keyring-daemon -r -d. Это простой способ перезапустить демон. Одна из возможных проблем заключается в том, что если он не был запущен в первую очередь, он запустится (я не знаю хорошего способа перезапустить его, если он уже запущен, за исключением анализа ps: /)
unhammer
2

Чтобы запретить gnome-keyring запускать ( неработающий ) SSH-агент в Ubuntu 16.04:

mkdir ~/.config/upstart || true
echo manual > ~/.config/upstart/gnome-keyring-ssh.override

# This step can be done with the gnome-session-properties tool
mkdir ~/.config/autostart || true
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart
echo 'X-GNOME-Autostart-enabled=false' >> ~/.config/autostart/gnome-keyring-ssh.desktop
дольмен
источник
Я вижу, что ваша последняя строка использует тот факт, что /usr/share/upstart/sessions/gnome-keyring-ssh.conf ищет эту строку и выходит сразу перед экспортом SSH_AUTH_SOCK, я думаю, что вам не нужно ~ / .config / upstart file / directory, если вы также добавляете Hidden=trueв файл .desktop. Это в основном маскирует «настоящий» (системный) ярлык со всех рабочих столов, даже тех, к которым он обычно относится, например, к GNOME / Unity. Я буду тестировать это в ближайшее время, так как я искал чистый способ отключить gnome-keyring-ssh, не затрагивая другие функции.
dragon788
1

В текущей версии Ubuntu изменив .desktop файла, упомянутого в других ответах, больше не достаточно. Дополнительная выскочка работа была добавлена , что также начинается gnome-keyring-daemon. Файл находится в /usr/share/upstart/sessions/gnome-keyring.confи содержит:

eval "$(gnome-keyring-daemon --start)" >/dev/null
initctl set-env --global SSH_AUTH_SOCK=$SSH_AUTH_SOCK
initctl set-env --global GPG_AGENT_INFO=$GPG_AGENT_INFO

Здесь демон должен быть ограничен, чтобы предоставлять только некоторые сервисы путем добавления --components=pkcs11,secretsв командную строку. Эти initctlлинии также могут быть удалены, в результате чего:

eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets)" >/dev/null
STH
источник
1
Как я могу переопределить этот файл для каждого пользователя без изменения системного файла?
дольмен
Изменение системного файла - плохая практика. Смотрите мой собственный ответ.
дольмен