Quale potrebbe essere la ragione per cui le chiavi private non sono sbloccate?


13

Da quando ho aggiornato Ubuntu 17.10 qualche tempo fa, le mie chiavi private - le quali utilizzo ad esempio per accedere al mio server tramite ssh - non vengono più sbloccate a livello di codice dopo il login.

inserisci qui la descrizione dell'immagine

La mia comprensione è che di solito seahorse clientdovrebbe occuparsene, chiedendoti se memorizzare o meno la password della chiave quando la digiti per la prima volta.

La mia prima ipotesi era che seahorse-daemonnon funzionasse per qualche motivo, ma è:

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

La mia seconda ipotesi è stata che per qualche motivo devo eliminare tutte le password correlate memorizzate in cavalluccio marino in »Password-> login«: inserisci qui la descrizione dell'immagine

Speravo di forzare il cliente a chiedermelo di nuovo e poi di memorizzarlo di nuovo. Ma questo non ha aiutato neanche. Il client non si apre per chiedermi ...

Poi ho trovato questa domanda, che potrebbe essere correlata, ma non mi ha aiutato: sbloccare tutte le chiavi private su Ubuntu, inserendo la password una sola volta al login

Poiché la gestione di altre password funziona come previsto (ad esempio password per nautilus, Chromium, Nextcloud ecc.) Presumo che il problema abbia a che fare con ssh-agent...

Qualcuno può suggerirmi nella giusta direzione, come risolvere questo problema? È cambiato qualcosa nel modo in cui GNOME gestisce le password? Forse qualche nuovo programma di fantasia non è stato installato durante il processo di aggiornamento?

AGGIORNAMENTO Quando aggiungo di nuovo la chiave privata all'agente di autenticazione con:

ssh-add ~/.ssh/id_rsa

e prova ad accedere, mi verrà chiesto di sbloccare la chiave una sola volta, dopodiché la chiave verrà sbloccata a livello di codice. Ma questo funziona solo fino al prossimo riavvio. Dopo un nuovo avvio, devo aggiungere di nuovo la chiave ...


All'improvviso ho anche iniziato a chiedermi una password per sbloccare le chiavi ssh mentre usavo Ubuntu 17.10. La risposta accettata non mi ha aiutato (funziona solo fino al riavvio). Ecco una domanda apparentemente duplicata.
Alexey,

Seahorse crittografa i suoi dati con, hai indovinato, la tua password (in genere). Gli accessi senza password, come ssh con una chiave, lettore di impronte digitali, ... lasciano la decrittazione fino al momento necessario, quindi ti viene chiesto. Hai cambiato gli accessi ssh dalla password alla chiave all'avvio del problema?
ubfan1,

Risposte:


7

Sì, ssh-agent è la risposta. Per salvare la passphrase, tutto ciò che devi fare è:

ssh-add ~/.ssh/id_rsa

Quindi inserire la password e accedere nuovamente.


Questo aiuta solo fino al prossimo riavvio.
Alexey,

@Alexey Sì, posso confermare che funziona solo fino al prossimo riavvio. Non ho ancora trovato una soluzione.
user5950

ssh-agent viene eseguito durante una sessione di accesso e termina quando lo si termina per la propria sicurezza. Se è stato persistente durante i riavvii e la password del tuo account viene compromessa, improvvisamente un utente malintenzionato ha accesso alla tua identità RSA e quindi a tutte le macchine a cui puoi accedere. Questo sarebbe un brutto buco di sicurezza. Esistono, tuttavia, alcune soluzioni alternative a costo di rendere il tuo account meno sicuro. Vedi unix.stackexchange.com/questions/90853/…
darksky

6

L'aggiunta di SSH Key Agent (portachiavi GNOME: SSH Agent) alle applicazioni di avvio ha risolto il problema per me:

inserisci qui la descrizione dell'immagine


3

Prima opzione

Avviare l'agente ssh:

ssh-agent

Aggiungi il tasto ssh:

ssh-add ~/.ssh/id_rsa

Per farlo persistere dopo il riavvio, avvia automaticamente ssh-agent, aggiungi la seguente riga al tuo .bash_profile:

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

Seconda opzione

Aggiungi questo al tuo .bashrc o .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

Questo dovrebbe richiedere una password solo al primo accesso dopo ogni riavvio. Continuerà a riutilizzare lo stesso agente ssh fintanto che rimane in esecuzione.


Grazie, questa soluzione sembra funzionare, ma sto vagando, cosa è successo per impedirgli di funzionare? Funzionava nell'ultimo decennio ... Vorrei trovare la causa prima di andare per una soluzione alternativa ...
user5950
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.