SFTP è un sottosistema del protocollo SSH. La sessione del protocollo SSH comprende diversi "momenti", lo scambio di chiavi (o KEX) è il primo.
Quindi il tuo client SFTP:
- connettersi al server SSH
- esegue lo scambio di chiavi e istanzia la crittografia della sessione ( da questo momento in poi, la sessione è sicura )
- invia una richiesta di autenticazione che contiene solo il nome utente
- riceve dal server una risposta che indica quali tipi / metodi di autenticazione sono disponibili per quel particolare nome utente (password, PKI, ...)
- richiesta per eseguire una delle autenticazioni nell'elenco restituito dal server
- riceve l'autorizzazione dal server per continuare con il tipo di autenticazione richiesto
- invia i dati di autenticazione (una password se è stata scelta la password-auth, una chiave pubblica se è stata scelta l'autenticazione PKI e così via ...)
- ricevere una risposta dal server (autorizzato, rifiutato o necessario ulteriore autorizzazione)
- se autorizzato, quindi e solo successivamente richiedere l'apertura del sottosistema SFTP
Come puoi vedere - il tuo nome utente e la password non vengono mai inviati in chiaro. E in realtà la password potrebbe non essere mai inviata affatto, nel caso in cui il client esegua un diverso tipo di autenticazione, come ad esempio l'autenticazione PKI.