SFTP es un subsistema del protocolo SSH. La sesión del protocolo SSH comprende varios "momentos", siendo el intercambio de claves (o KEX) el primero.
Por lo tanto, su cliente SFTP:
- conectarse al servidor SSH
- realice el intercambio de claves y cree una instancia del cifrado de sesión ( a partir de este momento, la sesión es segura )
- enviar una solicitud de autenticación que solo contenga el nombre de usuario
- recibir del servidor una respuesta que indique qué tipos / métodos de autenticación están disponibles para ese nombre de usuario en particular (contraseña, PKI, ...)
- solicitud para realizar una de las autenticaciones en la lista devuelta por el servidor
- recibir autorización del servidor para continuar con el tipo de autenticación solicitado
- enviar los datos de autenticación (una contraseña si se eligió contraseña-auth, una clave pública si se eligió PKI-auth, etc.)
- recibir una respuesta del servidor (autorizado, rechazado o necesita más autorización)
- si está autorizado, solo entonces solicite la apertura del subsistema SFTP
Como puede ver, su nombre de usuario y contraseña nunca se envían de forma clara. Y en realidad, la contraseña nunca se puede enviar, en caso de que su cliente realice un tipo de autenticación diferente, como la autenticación PKI, por ejemplo.