chiavi ssh ssh-agent bash e ssh-add


26

Sono nuovo ai tasti ssh. Qualcuno può spiegare come funziona ssh-agent bashe ssh-add?

Ho bisogno di capire i suoi interni in futuro.


Hai mai provato il migliore hit di Google per uno di questi termini?
Daniel Beck

Si l'ho fatto. Non ho ricevuto alcuna informazione utile. My bad
maneeshshetty,

Risposte:


41

Un agente è un programma che mantiene le tue chiavi in ​​memoria in modo che tu debba sbloccarle solo una volta , invece che ogni volta. ssh-agent lo fa per le chiavi SSH.

I soliti metodi per avviare ssh-agent sono:

  • eval `ssh-agent`- esegue l'agente in background e imposta le variabili di ambiente appropriate per l' istanza di shell corrente .

    ( ssh-agent , quando avviato senza argomenti, genera comandi che devono essere interpretati dalla shell.)

  • exec ssh-agent bash- avvia una nuova istanza della bashshell, sostituendo quella corrente.

    (Con uno o più argomenti, ssh-agent non genera nulla, ma avvia il comando specificato: in questo caso, la bashshell, ma tecnicamente potrebbe essere qualsiasi cosa.)

    Il secondo metodo è talvolta preferito, poiché uccide automaticamente ssh-agent quando si chiude la finestra del terminale. (All'avvio con eval, l'agente rimarrebbe in esecuzione, ma inaccessibile.)

Tuttavia, questo avvia solo un agente vuoto. Per renderlo effettivamente utile, è necessario utilizzare ssh-add , che sblocca le chiavi (di solito ~/.ssh/id_*) e le carica nell'agente, rendendole accessibili alle connessioni ssh o sftp .


1
C'è un modo per avviare ssh-agent attraverso più sessioni bash, una volta?
Asim

8

Inoltre, potresti voler aggiungere alcune chiavi all'avvio della sessione.

Modifica il tuo ~/.bashrcfile e aggiungi:

ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null  # start ssh-agent if not present
[ $? -eq 0 ] && {                                     # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null        # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null        # Load key 2
}

Controlla le tue chiavi con ssh-add -l

È possibile interrompere la sessione ssh-agent corrente con ssh-agent -k

Qualcosa da sapere su ssh-agent e .bashrc è non caricare troppe chiavi. Il numero predefinito di tentativi per il demone ssh è limitato a 6. Questo può essere modificato /etc/ssh/sshd_configcon il MaxAuthTriesvalore.


1
Che dire della password della chiave privata all'avvio ssh-addcon "&"? Supponete che i file della chiave privata non siano protetti?
Luciano,

Il codice sopra richiede la passphrase due volte, una volta quando si controlla se ssh-agent è disponibile e ancora una volta caricando la chiave privata.
Tapan Chandra,
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.