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


Al usar el ssh o ftp comandos del shell Bash, ¿el servidor al que me estoy conectando para saber el nombre de dominio utilizado? Entiendo que el nombre de dominio es en la zona traducido a una dirección IP a través de DNS. En HTTP, después de eso, se le dice al servidor el nombre del dominio original para que sirva la página correcta o presente el certificado TLS (SNI) correcto.

host serverfault.com
GET /

¿Ocurre un fenómeno similar cuando se conecta a ssh o ftp?

Lo pregunto porque estoy intentando ingresar a un servidor (GoDaddy webhosting) que espera un nombre de dominio, pero no me deja entrar cuando intento conectarme user@IPaddress como el DNS aún no se ha movido a la dirección IP de GoDaddy.


25
2018-03-01 15:25


origen


Tienes .ssh/config ¿Específico del nombre de host (o la dirección IP)? ¿Qué error te sale? (Hmm, esto es apoyo, pero no para el objetivo de responder la pregunta ...) - Andreas Krey
Solo lo genérico Login authentication failed para FTP y Permission denied para SSH. La conexión real está bien, y he revisado cuatro veces las credenciales de inicio de sesión. - dotancohen


Respuestas:


No, los clientes SSH no pasan el nombre DNS al que te conectaste al servidor.
Como ha dicho correctamente, el nombre se resuelve localmente a la dirección IP.

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


25
2018-03-01 15:36



Ya no es cierto para FTP. Ver mi respuesta - Martin Prikryl
Interesante, no lo sabía. Edité mi respuesta. ¡Gracias! - faker
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 apoyan todavía. En cualquier caso su respuesta es más correcta. - faker
@faker He agregado poca información sobre el soporte del lado del cliente que conozco atm. Puede hacer un poco más de investigación más tarde. - Martin Prikryl


El protocolo SSH / SFTP no Disponer de cualquier mecanismo para proporcionar el host al servidor.

Hubo una discusión acerca de cómo agregar esta funcionalidad a OpenSSH, vea "Hosts virtuales" para ssh.


El protocolo ftp hace tener HOST comando, que es equivalente a la HTTP Host encabezamiento. Se especifica por una relativamente nueva. RFC 7151. El RFC se publicó en marzo de 2014 (aunque el primer borrador es de 2007). Como tal, todavía no está soportado universalmente.

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

En el lado del cliente, está soportado por (mi)  WinSCP. No es compatible con FileZilla, como su autor. oponerse a la idea, ni por CyberDuck. No sé de los demás.


34
2018-03-02 09:02



Gracias, esta será una consideración importante en los próximos años cuando la gente se encuentre con este problema y busque esta pregunta en Google. - dotancohen
Es bueno saberlo. También deseo que exista algo así para ssh, porque tengo la necesidad de una interfaz que pueda enviar conexiones ssh realizadas a una dirección IP a diferentes servidores según el nombre de host. Pero todas mis investigaciones anteriores están de acuerdo con su conclusión, que no existe para ssh, y no se puede agregar fácilmente al protocolo. - kasperd
@kasperd, podría usar diferentes números de puerto para las diferentes conexiones. O podrías hacerlo basándote en el nombre de usuario. - A E
@AE Ningún enfoque funcionaría para mi caso de uso. Cuando tenga que 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 encriptado y no sé cómo usar una conexión ssh para extraer el nombre de usuario). El número de puerto tampoco funcionará porque mi interfaz de usuario realiza una búsqueda de DNS del nombre de host con el fin de encontrar el backend. (El frontend es de doble pila, los backends no tienen ninguna dirección IPv4 pública, el propósito del frontend es hacer que los backends sean accesibles para los clientes que solo tienen IPv4). - kasperd
@kasperd He agregado un enlace al hilo de la lista de correo de OpenSSH para agregar esto a SSH. - Martin Prikryl