Les protocoles SSH ou FTP indiquent-ils au serveur à quel domaine j'essaye de me connecter?

25

Lors de l'utilisation des commandes sshou ftpdu shell Bash, le serveur auquel je me connecte a-t-il connaissance du nom de domaine utilisé? Je comprends que le nom de domaine est traduit localement en une adresse IP via DNS. En HTTP, après cela, le serveur est également informé du nom de domaine d'origine afin de servir la bonne page ou de présenter le bon certificat TLS (SNI).

host serverfault.com
GET /

Un phénomène similaire se produit-il lors de la connexion à sshou ftp?

Je demande parce que j'essaie de ssh dans un serveur (hébergement Web GoDaddy) qui attend un nom de domaine, mais ne me laisse pas entrer lorsque j'essaie de me connecter via user@IPaddresscar le DNS n'est pas encore déplacé vers l'adresse IP GoDaddy.

dotancohen
la source
Avez-vous .ssh/configspécifique au nom d'hôte (ou à l'adresse IP)? Quelle erreur obtenez-vous? (Hmm, c'est du support, mais pas dans le but de répondre à la question ...)
Andreas Krey
Juste le générique Login authentication failedpour FTP et Permission deniedSSH. La connexion réelle est correcte et j'ai quadruple vérifié les informations de connexion.
dotancohen

Réponses:

25

Non, les clients SSH ne transmettent pas le nom DNS auquel vous vous êtes connecté au serveur.
Comme vous l'avez dit correctement, le nom est résolu localement en adresse IP.

Il semble que je me trompe sur FTP.
Voir l'autre réponse pour plus de détails.

truqueur
la source
5
Ce n'est plus vrai pour FTP. Voir ma réponse
Martin Prikryl
Intéressant, je ne le savais pas. J'ai édité ma réponse. Merci!
faker
En fait, à partir de 2015, la réponse non révisée est toujours correcte dans la majorité des cas. Cela pourrait toutefois changer au cours des prochaines années.
dotancohen
Je me demande combien de clients le soutiennent encore. Dans tous les cas, votre réponse est plus correcte.
faker
@faker J'ai ajouté peu d'informations sur le support côté client que je connais atm. Peut faire d'autres recherches plus tard.
Martin Prikryl
34

Le protocole SSH / SFTP ne dispose d'aucun mécanisme pour fournir l'hôte au serveur.

Il y a eu une discussion sur l'ajout de cette fonctionnalité à OpenSSH, voir "Hôtes virtuels" pour ssh .


Le protocole FTP possède une HOSTcommande, ce qui équivaut à l'en- Hosttête HTTP . Il est spécifié par une RFC 7151 relativement nouvelle . Le RFC a été publié en mars 2014 (bien que le premier projet date de 2007). En tant que tel, il n'est pas encore universellement pris en charge.

Côté serveur, il est pris en charge par IIS (le RFC est sponsorisé par Microsoft) et ProFTPD (depuis 1.3.6rc1). Il n'est pas pris en charge par d'autres serveurs FTP Unix courants comme Pure-FTPd ou vsftpd.

Côté client, il est supporté par (mon) WinSCP . Il n'est pas pris en charge par FileZilla, comme son auteur s'y oppose , ni par CyberDuck. Je ne connais pas les autres.

Martin Prikryl
la source
Merci, ce sera une considération importante au cours des prochaines années lorsque les gens tomberont sur ce problème et recherchent cette question sur Google.
dotancohen
1
C'est bon à savoir. Je souhaite que quelque chose comme ça existe également pour ssh, car j'ai besoin d'un frontend qui peut envoyer des connexions ssh établies à une adresse IP vers différents serveurs en fonction du nom d'hôte. Mais toutes mes recherches précédentes sont d'accord avec votre conclusion, qu'il n'existe pas pour ssh, et il ne peut pas être facilement ajouté au protocole.
kasperd
@kasperd, vous pouvez utiliser différents numéros de port pour les différentes connexions. Ou vous pouvez le faire en fonction du nom d'utilisateur.
AE
@AE Aucune des deux approches ne fonctionnerait pour mon cas d'utilisation. Au moment où je dois décider à quel serveur envoyer la connexion, le client n'a pas encore envoyé le nom d'utilisateur. (De plus, je suis presque sûr que le nom d'utilisateur est uniquement envoyé crypté, et je ne sais pas comment utiliser une connexion ssh pour extraire le nom d'utilisateur.) Le numéro de port ne fonctionnera pas non plus parce que mon frontend effectue en fait une recherche DNS du nom d'hôte afin de trouver le backend. (Le frontend est à double pile, les backends n'ont pas d'adresse IPv4 publique, le but du frontend est de rendre les backends accessibles aux clients IPv4 uniquement.)
kasperd
2
@kasperd J'ai ajouté un lien vers le fil de la liste de diffusion OpenSSH pour l'ajouter à SSH.
Martin Prikryl