Протоколы SSH или FTP сообщают серверу, к какому домену я пытаюсь подключиться?


25

При использовании команд sshили ftpиз оболочки Bash может ли сервер, к которому я подключаюсь, узнать об используемом доменном имени? Я понимаю, что доменное имя локально переводится в IP-адрес через DNS. В HTTP после этого серверу также сообщается исходное доменное имя для предоставления правильной страницы или для предоставления правильного сертификата TLS (SNI).

host serverfault.com
GET /

Происходит ли подобное явление при подключении к sshили ftp?

Я спрашиваю, потому что я пытаюсь подключиться к серверу (веб-хостинг GoDaddy), который ожидает доменное имя, но не пропускает меня, когда я пытаюсь подключиться через него, так user@IPaddressкак DNS еще не перемещен на IP-адрес GoDaddy.


У вас есть .ssh/configконкретное имя хоста (или IP-адрес)? Какая у вас ошибка? (Хм, это поддержка, но не цель ответа на вопрос ...)
Андреас Крей

Просто общий Login authentication failedдля FTP и Permission deniedдля SSH. Фактическое соединение в порядке, и я четыре раза проверил учетные данные для входа.
dotancohen

Ответы:


25

Нет, клиенты SSH не передают DNS-имя, к которому вы подключены, на сервер.
Как вы сказали правильно, имя разрешается локально в IP-адрес.

Похоже, я ошибся насчет FTP.
Смотрите другой ответ для деталей.


5
Это больше не относится к FTP. Смотрите мой ответ
Мартин Прикрыл

Интересно, я этого не знал. Я отредактировал свой ответ. Благодарность!
Мошенник

На самом деле, по состоянию на 2015 г. неотредактированный ответ в большинстве случаев остается верным. Это может измениться в ближайшие несколько лет, хотя.
dotancohen

Мне интересно, сколько клиентов его поддерживают. В любом случае ваш ответ более правильный.
Мошенник

@faker Я добавил немного информации о клиентской поддержке, которую я знаю. Возможно, проведем дальнейшие исследования позже.
Мартин Прикрыл,

34

Протокол SSH / SFTP не имеет какого-либо механизма для предоставления хоста серверу.

Были обсуждения о добавлении этой функциональности в OpenSSH, см. «Виртуальные хосты» для ssh .


Протокол FTP делает иметь HOSTкоманду, которая является эквивалентно HTTP Hostзаголовка. Это определено относительно новым RFC 7151 . RFC был опубликован в марте 2014 года (хотя первый проект относится к 2007 году). Как таковая, она еще не поддерживается повсеместно.

На стороне сервера это поддерживается IIS (RFC спонсируется Microsoft) и ProFTPD (начиная с 1.3.6rc1). Он не поддерживается другими распространенными Unix FTP-серверами, такими как Pure-FTPd или vsftpd.

На стороне клиента это поддерживается (моим) WinSCP . Он не поддерживается ни FileZilla, так как его автор выступает против этой идеи , ни CyberDuck. Я не знаю о других.


Спасибо, это будет важным фактором в ближайшие несколько лет, когда люди столкнутся с этой проблемой и зададут ей вопрос.
dotancohen

1
Это хорошо знать. Я хотел бы, чтобы что-то подобное существовало и для ssh, потому что мне нужен интерфейс, который мог бы отправлять ssh-соединения, сделанные с одним IP-адресом, на разные серверы на основе имени хоста. Но все мои предыдущие исследования согласны с вашим выводом, что он не существует для ssh, и его нелегко добавить в протокол.
Касперд

@kasperd, вы можете использовать разные номера портов для разных соединений. Или вы можете сделать это на основе имени пользователя.
AE

@ AE Ни один из подходов не подойдет для моего варианта использования. К тому времени, когда мне нужно решить, на какой сервер отправлять соединение, клиент еще не отправил имя пользователя. (Более того, я почти уверен, что имя пользователя отправляется только в зашифрованном виде, и я не знаю, как изменить ssh-соединение для извлечения имени пользователя.) Номер порта также не будет работать, потому что мой интерфейс фактически выполняет поиск имени хоста в DNS. чтобы найти бэкэнд. (Веб-интерфейс представляет собой двойной стек, бэкэнды не имеют публичного IPv4-адреса, его цель - сделать бэкэнды доступными для клиентов, использующих только IPv4.)
kasperd

2
@kasperd Я добавил ссылку на ветку списка рассылки OpenSSH о добавлении этого в SSH.
Мартин Прикрыл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.