La mia comprensione di base è questa:
- Il% (co_de%) del server (connesso a) utilizza la chiave pubblica per crittografare il messaggio
- Il
sshd
ossh
del client lo decrittografa e restituisce qualcosa (il checksum del messaggio? la sua firma?) - Il
ssh-agent
del server verifica che questo sia coerente con il messaggio per autenticare l'utente
Ma quali sono i dettagli? Qual è il "messaggio", cosa restituisce sshd
? Lo farebbe sempre con lo stesso messaggio originale sempre e comunque sempre la stessa comunicazione?
Questo processo di autenticazione può essere riprodotto tramite strumenti bash se viene utilizzato ssh(-agent)
? Per esempio. le chiavi pubbliche che ssh-agent
fornisce possono essere ottenute tramite ssh-agent
, e il resto del processo? O richiederebbe la connessione manuale al socket ssh-add -L
unix e ad alcune comunicazioni di basso livello?
Correlati: Thomas 'Server-Bob dialogano qui , sebbene ciò suggerisca che il client segni solo alcuni dati casuali che verrà quindi confrontato con tutte le chiavi pubbliche del $SSH_AUTH_SOCK
dell'utente del server. Questa illustrazione d'altra parte afferma che il messaggio è crittografato alla chiave pubblica dell'utente precedentemente determinata (non quello per la crittografia ssh) e il client emette il checksum che dipende anche da un ID di sessione casuale. Quale è corretto? Oppure entrambi comunicano solo una parte della storia effettivamente più complessa?