Як відключити брелок для SSH та GPG?


19

Як відключити брелок для SSH та GPG?

Я хотів би зберегти брелок для wifi та інші речі. Я використовую Ubuntu 12.04.


1
Ви не можете просто відмовитись, щоб зберегти ці паролі на брелоку? Для стандартного ssh він не збереже пароль, якщо ви не встановите його саме так, на мій досвід.
Марті Фрід

Не знаю. Чи є спосіб скинути брелок. Щоб перевірити це? У заголовку теми був Ubuntu 12.04 LTS, але @ jorge-castro змінив її.
brodul

Кейрінг за часом не сильно змінився, але я додав його до питання для наочності, не потрібно, щоб він захаращував заголовок, хоча відповідь, ймовірно, стосуватиметься кількох версій.
Хорхе Кастро

Вибачте за питання про noob, але яка ваша мотивація відключення брелоку для SSH?
Стефан

1
@Stephane Я не можу виступати за ОП, але я не хочу, щоб інформація була так критично викрита жодним чином. Я вважаю за краще вводити свій пароль ключа 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.


Tnx, це остаточно вирішує проблему.
brodul

7

У термінальному сеансі (використовуючи Ctrl- Alt- T) ви можете зупинити процес gnome-keyring від роботи з ssh за допомогою:

unset SSH_AUTH_SOCK 

Доступна --no-use-agentопція gpg, щоб уникнути використання процесу gnome-keyring з gpg, однак це за замовчуванням.

Ви можете зупинити інструмент nautilus seahorse від використання gpg-агента, використовуючи:

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

Ви можете повністю зупинити процес керування ключем gnome за допомогою команди:

kill $GNOME_KEYRING_PID

Кожна з вищезазначених дій відновлюється за допомогою входу заново.


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

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

Індивідуальні паролі ключів можна видалити з логіну або іншого введення ключових слів за допомогою Passwordsвкладки Passwords and Keysпрограми (морський коник).

Якщо gnome-keyring немає, ssh-агент все одно буде запущений, але він не зберігає 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 (він не забув пароль).
brodul

Чи є спосіб відключити брелок при запуску. (Я дійсно не хочу писати сценарій, що вбиває брелок).
brodul

Я відредагував відповідь із ще деякою інформацією, яка може бути корисною, однак, можливо, буде краще запитати обхід Enigmail безпосередньо в окремому запитанні, чітко пояснюючи, що ви хочете.
John S Gruber

Ви можете змити брелок (забудьте свої паролі, 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/sesions/gnome-keyring-ssh.conf шукає цей рядок і виходить безпосередньо перед експортом SSH_AUTH_SOCK, я думаю, що вам не потрібно ~ / .config / upstart файл / каталог, якщо ви також додаєте 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

1
Як я можу замінити цей файл на кожного користувача, не змінюючи системний файл?
долмен

Зміна системного файлу - погана практика. Дивіться мою власну відповідь.
долмен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.