Sono nuovo ai tasti ssh. Qualcuno può spiegare come funziona ssh-agent bash
e ssh-add
?
Ho bisogno di capire i suoi interni in futuro.
Sono nuovo ai tasti ssh. Qualcuno può spiegare come funziona ssh-agent bash
e ssh-add
?
Ho bisogno di capire i suoi interni in futuro.
Risposte:
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 bash
shell, sostituendo quella corrente.
(Con uno o più argomenti, ssh-agent non genera nulla, ma avvia il comando specificato: in questo caso, la bash
shell, 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 .
Inoltre, potresti voler aggiungere alcune chiavi all'avvio della sessione.
Modifica il tuo ~/.bashrc
file 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_config
con il MaxAuthTries
valore.
ssh-add
con "&"? Supponete che i file della chiave privata non siano protetti?