Jak wyłączyć brelok do SSH i GPG?

19

Jak wyłączyć brelok do SSH i GPG?

Chciałbym zachować brelok do wifi i innych rzeczy. Używam Ubuntu 12.04.

brodul
źródło
1
Czy nie możesz po prostu odmówić zapisania tych haseł w breloku? W przypadku standardowego ssh hasło nie zostanie zapisane, chyba że skonfigurujesz je w ten sposób, z mojego doświadczenia.
Marty Fried
Nie wiem Czy istnieje sposób na zresetowanie breloka do kluczy. Aby to przetestować? Tytuł w temacie zawierał Ubuntu 12.04 LTS, ale @ jorge-castro to zmienił.
brodul
Brelok od dłuższego czasu niewiele się zmienił, ale dodałem go do pytania, aby uzyskać jasność, nie trzeba jednak zaśmiecać tytułu, ponieważ odpowiedź prawdopodobnie będzie dotyczyć wielu wersji.
Jorge Castro,
Przepraszamy za pytanie noob, ale jaka jest Twoja motywacja do wyłączenia breloka do SSH?
Stephane
1
@Stephane Nie mogę wypowiadać się za OP, ale nie chcę, aby informacje tak krytyczne były w jakikolwiek sposób ujawniane. Wolę wprowadzać hasło klucza ssh za każdym razem, gdy łączę się z jakimś serwerem, niż przechowywanie go w breloku, umożliwiając dowolnemu programowi i każdej osobie w mojej przestrzeni użytkownika dowolny dostęp ssh. Nie ma to oczywiście sensu dla wszystkich innych, ale imo motywacja tutaj jest zrozumiała
phil294,

Odpowiedzi:

12

Najpierw zduplikuj plik /etc/xdg/autostart/gnome-keyring-ssh.desktopdo ~/.config/autostart/.

Następnie edytuj ~/.config/autostart/gnome-keyring-ssh.desktop, aby usunąć następujący wiersz:

NoDisplay=true

i dodać następujący wiersz na końcu:

X-GNOME-Autostart-enabled=false

Powinno to wyłączyć zarządzanie SSH po ponownym uruchomieniu sesji. Aby wyłączyć GPG, zrób to samo z plikiem/etc/xdg/autostart/gnome-keyring-gpg.desktop .

Pierre-Antoine
źródło
Tnx, to w końcu rozwiązuje problem.
brodul
7

W sesji terminalowej (przy użyciu Ctrl- Alt- T) możesz zatrzymać proces gnome-keyring z ssh, używając:

unset SSH_AUTH_SOCK 

--no-use-agentOpcja jest dostępna do gpg aby uniknąć stosując proces gnome-brelok z GPG jednak, że jest to ustawienie domyślne.

Możesz zatrzymać narzędzie nautilus konik morski przed użyciem agenta gpg, używając:

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

Możesz całkowicie zatrzymać proces gnome-keyring za pomocą polecenia:

kill $GNOME_KEYRING_PID

Każda z powyższych akcji jest przywracana po ponownym zalogowaniu.


Hasła Wi-Fi dostępne dla wszystkich identyfikatorów użytkowników są przechowywane w /etc/NetworkManager/system-connections/katalogu zamiast w kluczu gnome, dzięki czemu mogą pozostać dostępne, jeśli zabijesz proces tworzenia klucza gnome.

The ssh-addKomenda może być używana do usuwania (lub dodać) konkretne klawisze z / na prąd gnome-brelok Brelok gdy proces jest uruchomiony.

Poszczególne hasła kluczy można usunąć z loginu lub innego klucza za pomocą Passwords zakładki Passwords and Keysprogramu (konika morskiego).

Jeśli gnome-keyring nie jest obecny, ssh-agent będzie nadal działał, ale nie przechowuje kluczy gpg.


Istnieją dwa wiersze /etc/pam.d/lightdmzwiązane z zapisywaniem hasła logowania i uruchamianiem demona gnome-keyring z odblokowanym kluczem logowania za pomocą hasła logowania. Drugi uruchamia demona:

session optional        pam_gnome_keyring.so auto_start

Komentowanie tylko tego wiersza powstrzymałoby go przed uruchomieniem dla wszystkich sesji wszystkich użytkowników twojego systemu używającego hasła logowania do odblokowania klucza logowania.

/etc/xdg/autostart/zawiera wpisy początkowe dla różnych kategorii sekretów, które może obsłużyć gnome-keyring. Aby zatrzymać demona przed uruchomieniem tych komponentów, pliki te można przenieść z tego katalogu. Możesz przenieść wszystkie pliki gnome-keyring- *, aby zatrzymać uruchamianie demona, lub po prostu odmówić podania hasła logowania, aby wyłączyć brelok logowania, pozostawiając działającego demona.

John S Gruber
źródło
unset SSH_AUTH_SOCK działa. Tnx. Czy istnieje sposób, aby rozbroić to dla wszystkich sesji? Używam Enigmail dla Thunderbirda i jest problem z enigmailem (nie zapomina hasła).
brodul
Czy istnieje sposób na wyłączenie kluczy podczas uruchamiania. (Naprawdę nie chcę pisać skryptu zabijającego brelok).
brodul
Zredagowałem odpowiedź z kilkoma dodatkowymi informacjami, które mogą być pomocne, jednak lepiej poprosić o obejście Enigmail bezpośrednio w osobnym pytaniu, wyraźnie mówiąc o tym, czego chcesz.
John S Gruber,
Możesz opróżnić brelok (zapomnij hasła, zarówno gpg, jak i ssh i inne) gnome-keyring-daemon -r -d. Jest to prosty sposób na ponowne uruchomienie demona. Jednym z możliwych problemów jest to, że jeśli nie był uruchomiony w pierwszej kolejności, uruchomi się (nie znam dobrego sposobu na ponowne uruchomienie go tylko, jeśli jest już uruchomiony, z wyjątkiem parsowania ps: /)
unhammer
2

Aby powstrzymać gnome-keyring przed uruchomieniem ( uszkodzonego ) agenta SSH na 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
dolmen
źródło
Widzę, że twoja ostatnia linia korzysta z faktu, że /usr/share/upstart/sessions/gnome-keyring-ssh.conf szuka tej linii i kończy działanie natychmiast przed eksportowaniem SSH_AUTH_SOCK, myślę, że nie potrzebujesz ~ / .config / upstart file / directory, jeśli również dołączasz Hidden=truedo pliku .desktop. Zasadniczo maskuje to „prawdziwy” skrót (systemowy) ze wszystkich komputerów stacjonarnych, nawet tych, których normalnie może dotyczyć GNOME / Unity. Niedługo będę to testować, ponieważ szukałem czystego sposobu na wyłączenie gnome-keyring-ssh bez wpływu na inne funkcje.
dragon788
1

W obecnej wersji Ubuntu zmiana .desktoppliku wymienionego w innych odpowiedziach nie jest już wystarczająca. Dodatkowym zadaniem dorobkiewicz dodano , że rozpoczyna również gnome-keyring-daemon. Plik znajduje się w /usr/share/upstart/sessions/gnome-keyring.confi zawiera:

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

Tutaj demon musi zostać ograniczony, aby zapewniał tylko niektóre usługi poprzez dodanie --components=pkcs11,secretsdo wiersza poleceń. Te initctllinie mogą być również usunięte, w wyniku:

eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets)" >/dev/null
coś
źródło
1
Jak mogę zastąpić ten plik na użytkownika bez modyfikowania pliku systemowego?
dolmen
Zmiana pliku systemowego jest złą praktyką. Zobacz moją własną odpowiedź.
dolmen