Co może być przyczyną, że klucze prywatne nie są odblokowane?

13

Ponieważ zaktualizowałem do Ubuntu 17.10 jakiś czas temu, moje klucze prywatne - których używam na przykład do uzyskania dostępu do mojego serwera przez ssh - nie są już odblokowywane programowo po zalogowaniu.

wprowadź opis zdjęcia tutaj

Rozumiem, że zazwyczaj seahorse clientnależy o to zadać, pytając, czy należy przechowywać hasło klucza podczas wpisywania go po raz pierwszy.

Moje pierwsze przypuszczenie było takie, że seahorse-daemonz jakiegoś powodu nie działało, ale jest to:

user@Zeus:~$ ps aux | grep seahorse
user    19170  0.0  0.1 432636 26564 ?        Ss   00:07   0:00 seahorse-daemon

Moje drugie przypuszczenie było takie, że z jakiegoś powodu muszę usunąć wszystkie powiązane hasła przechowywane w koniku morskim pod hasłem »Hasła-> login«: wprowadź opis zdjęcia tutaj

Miałem nadzieję, że zmuszę klienta, aby zapytał mnie ponownie, a następnie ponownie go przechował. Ale to też nie pomogło. Klient nie wyskakuje, żeby mnie zapytać ...

Potem znalazłem to pytanie, które może być powiązane, ale nie pomogło mi: odblokuj wszystkie klucze prywatne na Ubuntu, wprowadzając hasło tylko raz podczas logowania

Ponieważ zarządzanie innymi hasłami działa zgodnie z oczekiwaniami (na przykład hasła nautilus, Chromium, Nextcloud itp.) Zakładam, że problem ma coś wspólnego z ssh-agent...

Czy ktoś może mi podpowiedzieć we właściwych kierunkach, jak rozwiązać ten problem? Czy coś się zmieniło w sposobie, w jaki GNOME obsługuje hasła? Może jakiś nowy fantazyjny program nie został zainstalowany podczas procesu aktualizacji?

AKTUALIZACJA Gdy ponownie dodam klucz prywatny do agenta uwierzytelniania za pomocą:

ssh-add ~/.ssh/id_rsa

i spróbuj się zalogować, zostaniesz poproszony o odblokowanie klucza tylko raz, po czym klucz zostanie odblokowany programowo. Ale działa to tylko do następnego ponownego uruchomienia. Po ponownym uruchomieniu muszę ponownie dodać klucz ...

user5950
źródło
Nagle zacząłem też prosić o hasło do odblokowania kluczy ssh podczas korzystania z Ubuntu 17.10. Przyjęta odpowiedź nie pomogła mi (działa tylko do momentu ponownego uruchomienia). Oto pozornie podwójne pytanie.
Alexey
Konik morski szyfruje swoje dane za pomocą, jak się domyślacie, twojego hasła (zwykle). Loginy bez hasła, takie jak ssh z kluczem, czytnik linii papilarnych ... pozostaw odszyfrowanie do momentu użycia, a następnie zostaniesz o to poproszony. Czy zmieniłeś loginy ssh z hasła na klucz, gdy problem się zaczął?
ubfan1,

Odpowiedzi:

7

Tak, ssh-agent jest odpowiedzią. Aby zapisać hasło, wszystko co musisz zrobić, to:

ssh-add ~/.ssh/id_rsa

Następnie wprowadź hasło i zaloguj się ponownie.

ciemne niebo
źródło
Pomaga to tylko do następnego uruchomienia.
Alexey
@Alexey Tak, mogę potwierdzić, że działa tylko do następnego uruchomienia. Nie znalazłem jeszcze rozwiązania.
user5950
ssh-agent działa podczas sesji logowania i kończy się, gdy zakończysz go dla własnego bezpieczeństwa. Jeśli był trwały podczas restartów, a hasło do twojego konta zostało naruszone, nagle atakujący ma dostęp do twojej tożsamości RSA, a tym samym do każdej maszyny, do której masz dostęp. To byłaby paskudna dziura w bezpieczeństwie. Istnieją jednak pewne obejścia, które powodują, że Twoje konto jest mniej bezpieczne. Zobacz unix.stackexchange.com/questions/90853/…
darksky
6

Dodanie SSH Key Agent (GNOME Keyring: SSH Agent) do aplikacji startowych rozwiązało problem:

wprowadź opis zdjęcia tutaj

Alexey
źródło
3

Pierwsza opcja

Uruchom agenta ssh:

ssh-agent

Dodaj klucz ssh:

ssh-add ~/.ssh/id_rsa

Aby utrzymywał się po ponownym uruchomieniu, automatycznie uruchom ssh-agent, dodaj następujący wiersz do .bash_profile:

if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent -s`
  ssh-add
fi

Druga opcja

Dodaj to do swojego .bashrc lub .zshrc:

if [ ! -S ~/.ssh/ssh_auth_sock ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l > /dev/null || ssh-add

Powinno to monitować o podanie hasła tylko przy pierwszym logowaniu po każdym ponownym uruchomieniu. Będzie nadal używał tego samego agenta ssh, dopóki będzie działał.

An0n
źródło
Dzięki, to obejście wygląda na to, że działa, ale wędruję, co się stało, że w ogóle przestało działać?
Działało