При использовании ssh
или ftp
команд из оболочки Bash, узнает ли сервер, к которому я подключаюсь, используемое доменное имя? Я понимаю, что доменное имя локально переводится в IP-адрес через DNS. В HTTP после этого серверу также сообщается исходное доменное имя, чтобы обслуживать правильную страницу или предоставить правильный сертификат TLS (SNI).
host serverfault.com
GET /
Происходит ли подобное явление при подключении к ssh
или ftp
?
Я спрашиваю, потому что пытаюсь подключиться по ssh к серверу (веб-хостинг GoDaddy), который ожидает доменное имя, но не пропускает меня, когда я пытаюсь подключиться через user@IPaddress
поскольку DNS еще не перенесен на IP-адрес GoDaddy.
Протокол SSH / SFTP не иметь какой-либо механизм для предоставления хоста серверу.
Обсуждалась возможность добавления этой функции в OpenSSH, см. «Виртуальные хосты» для ssh.
Протокол FTP делает иметь HOST
команда, которая является эквивалентом HTTP Host
заголовок. Это указано относительно новым RFC 7151. RFC был опубликован в марте 2014 года (хотя первый черновик датирован 2007 годом). Таким образом, он еще не поддерживается повсеместно.
На стороне сервера он поддерживается IIS (RFC спонсируется Microsoft) и ProFTPD (начиная с 1.3.6rc1). Он не поддерживается другими распространенными FTP-серверами Unix, такими как Pure-FTPd или vsftpd.
На стороне клиента это поддерживается (мой) WinSCP. Он не поддерживается FileZilla, поскольку его автор противостоять идее, ни CyberDuck. Насчет других не знаю.
Нет, клиенты SSH не передают DNS-имя, к которому вы подключились, на сервер.
Как вы правильно сказали, имя разрешается локально в IP-адрес.
Похоже, я ошибался насчет FTP.
Подробнее см. Другой ответ.