In un primo passo il server SSH e il client si autenticano a vicenda. Il server invia un certificato al client per verificare che sia effettivamente il server giusto. Solo al primo contatto c’è il rischio che un terzo si ponga tra i due partecipanti e intercetti la connessione. Poiché però il certificato stesso è criptato, non può essere imitato. Una volta che il client sa qual è il certificato corretto, nessun altro può fingere di contattare il server corrispondente.
Dopo l’autenticazione del server, il client deve anche identificarsi al server come utente autorizzato. Questo, o il suo valore hash criptato, viene memorizzato sul server. Tuttavia, questo significa anche che gli utenti devono inserire la password ogni volta che si collegano a un server diverso durante la stessa sessione. Questo è il motivo per cui esiste un’opzione alternativa per l’autenticazione lato client: l’uso della coppia di chiavi Public Key e Private Key (chiave pubblica e chiave privata).
La Private Key viene creata individualmente per il proprio computer e protetta con una passphrase che dovrebbe essere più lunga di una tipica password. La chiave privata viene memorizzata esclusivamente sul proprio computer e rimane sempre segreta. Se si desidera stabilire una connessione SSH, occorre prima inserire la passphrase e aprire l’accesso alla Private Key.
Sul server (così come sul client stesso) ci sono anche chiavi pubbliche. Il server crea un problema di crittografia con la sua chiave pubblica e lo invia al client. Il client a propria volta decripta il problema con la propria chiave privata, invia la soluzione e informa il server che è consentito stabilire una connessione legittima.
Durante una sessione è necessario inserire la passphrase solo una volta per connettersi a qualsiasi numero di server. Al termine della sessione gli utenti si scollegano dal proprio computer locale per garantire che nessun terzo che abbia accesso al computer locale possa connettersi al server.