¿Los protocolos SSH o FTP le dicen al servidor a qué dominio estoy tratando de conectarme?

25

Al usar los comandos ssho ftpdel shell Bash, ¿el servidor al que me estoy conectando sabe el nombre de dominio utilizado? Entiendo que el nombre de dominio se traduce localmente en una dirección IP a través de DNS. En HTTP, después de que eso suceda, al servidor también se le indica el nombre de dominio original para servir la página correcta o para presentar el certificado TLS (SNI) correcto.

host serverfault.com
GET /

¿Ocurre un fenómeno similar al conectarse sshao ftp?

Pregunto porque estoy tratando de ingresar a un servidor (alojamiento web GoDaddy) que espera un nombre de dominio, pero no me deja entrar cuando intento conectarme user@IPaddressya que el DNS aún no se ha movido a la dirección IP de GoDaddy.

dotancohen
fuente
¿Tiene .ssh/configun nombre específico para el host (o la dirección IP)? ¿Qué error obtienes? (Hmm, esto es apoyo, pero no con el objetivo de responder la pregunta ...)
Andreas Krey
Solo el genérico Login authentication failedpara FTP y Permission deniedpara SSH. La conexión real está bien, y he verificado cuádruple las credenciales de inicio de sesión.
dotancohen

Respuestas:

25

No, los clientes SSH no pasan el nombre DNS al que se conectó al servidor.
Como dijiste correctamente, el nombre se resuelve localmente en la dirección IP.

Parece que estaba equivocado sobre FTP.
Vea la otra respuesta para más detalles.

falsificador
fuente
55
Ya no es cierto para FTP. Ver mi respuesta
Martin Prikryl
Interesante, no lo sabía. Edité mi respuesta. ¡Gracias!
falsificador
En realidad, a partir de 2015, la respuesta no editada sigue siendo correcta en la mayoría de los casos. Sin embargo, eso puede cambiar en los próximos años.
dotancohen
Me pregunto cuántos clientes lo soportan todavía. En cualquier caso, su respuesta es más correcta.
Falsificador
@faker He agregado poca información sobre el soporte del lado del cliente que conozco atm. Puede investigar un poco más adelante.
Martin Prikryl
34

El protocolo SSH / SFTP no tiene ningún mecanismo para proporcionar el host al servidor.

Hubo una discusión sobre cómo agregar esta funcionalidad a OpenSSH, consulte "Hosts virtuales" para ssh .


El protocolo FTP hace tener HOSTcomando, que es un equivalente al HTTP Hostcabecera. Está especificado por un RFC 7151 relativamente nuevo . El RFC se publicó en marzo de 2014 (aunque el primer borrador es de 2007). Como tal, todavía no es universalmente compatible.

En el lado del servidor, es compatible con IIS (el RFC está patrocinado por Microsoft) y ProFTPD (desde 1.3.6rc1). No es compatible con otros servidores FTP comunes de Unix como Pure-FTPd o vsftpd.

En el lado del cliente, es compatible con (mi) WinSCP . FileZilla no lo admite, ya que su autor se opone a la idea , ni CyberDuck. No sé de los demás.

Martin Prikryl
fuente
Gracias, esta será una consideración importante en los próximos años cuando la gente se encuentre con este problema y busque en Google esta pregunta.
dotancohen
1
Es bueno saberlo. Desearía que algo así también existiera para ssh, porque tengo la necesidad de una interfaz que pueda enviar conexiones ssh realizadas a una dirección IP a diferentes servidores en función del nombre de host. Pero toda mi investigación previa está de acuerdo con su conclusión, que no existe para ssh, y no se puede agregar fácilmente al protocolo.
Kasperd
@kasperd, puede usar diferentes números de puerto para las diferentes conexiones. O puede hacerlo en función del nombre de usuario.
AE
@AE Ningún enfoque funcionaría para mi caso de uso. Cuando necesito decidir a qué servidor enviar la conexión, el cliente aún no ha enviado el nombre de usuario. (Además, estoy bastante seguro de que el nombre de usuario solo se envía cifrado, y no sé cómo mitigar una conexión ssh para extraer el nombre de usuario). El número de puerto tampoco funcionará porque mi interfaz realmente realiza una búsqueda DNS del nombre de host para encontrar el backend. (La interfaz de usuario es doble pila, los backends no tienen ninguna dirección IPv4 pública, el propósito de la interfaz es hacer que los backends accesible para clientes sólo IPv4.)
kasperd
2
@kasperd He agregado un enlace al hilo de la lista de correo de OpenSSH sobre agregar esto a SSH.
Martin Prikryl