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.