Czy protokoły SSH lub FTP informują serwer, z którą domeną próbuję się połączyć?

25

Czy podczas korzystania z poleceń sshlub ftppowłoki Bash serwer, z którym się łączę, dowiaduje się o używanej nazwie domeny? Rozumiem, że nazwa domeny jest lokalnie tłumaczona na adres IP przez DNS. Po tym zdarzeniu serwer HTTP otrzymuje również oryginalną nazwę domeny w celu wyświetlenia właściwej strony lub przedstawienia prawidłowego certyfikatu TLS (SNI).

host serverfault.com
GET /

Czy podobne zjawisko występuje podczas łączenia się z sshlub ftp?

Pytam, ponieważ próbuję ssh na serwerze (GoDaddy webhosting), który oczekuje nazwy domeny, ale nie wpuszcza mnie, gdy próbuję się połączyć, user@IPaddressponieważ DNS nie został jeszcze przeniesiony na adres IP GoDaddy.

dotancohen
źródło
Czy masz .ssh/configkonkretną nazwę hosta (lub adres IP)? Jaki masz błąd? (Hmm, to jest wsparcie, ale nie w celu udzielenia odpowiedzi na pytanie ...)
Andreas Krey
Po prostu ogólny Login authentication faileddla FTP i Permission deniedSSH. Rzeczywiste połączenie jest w porządku i czterokrotnie sprawdziłem dane logowania.
dotancohen

Odpowiedzi:

25

Nie, klienci SSH nie przekazują nazwy DNS, z którą się połączyłeś na serwerze.
Jak powiedziałeś poprawnie, nazwa jest tłumaczona lokalnie na adres IP.

Wygląda na to, że myliłem się co do FTP.
Zobacz drugą odpowiedź, aby uzyskać szczegółowe informacje.

oszust
źródło
5
To nie jest już prawdą w przypadku FTP. Zobacz moją odpowiedź
Martin Prikryl
Interesujące, nie wiedziałem tego. Zredagowałem swoją odpowiedź. Dzięki!
faker
W rzeczywistości od 2015 r. Niezmieniona odpowiedź jest nadal poprawna w większości przypadków. To może się jednak zmienić w ciągu najbliższych kilku lat.
dotancohen
Zastanawiam się, ilu klientów jeszcze to obsługuje. W każdym razie twoja odpowiedź jest bardziej poprawna.
faker
@faker Dodałem niewiele informacji na temat wsparcia po stronie klienta, którego znam atm. Później mogą przeprowadzić dalsze badania.
Martin Prikryl
34

Protokół SSH / SFTP nie ma żadnego mechanizmu zapewniającego hostowi serwerowi.

Dyskutowano o dodaniu tej funkcji do OpenSSH, zobacz „Wirtualne hosty” dla ssh .


Protokół FTP nie ma HOSTpolecenia, które jest równoznaczne z HTTP Hostnagłówek. Jest to określone przez stosunkowo nowy RFC 7151 . RFC opublikowano w marcu 2014 r. (Choć pierwszy projekt pochodzi z 2007 r.). W związku z tym nie jest jeszcze powszechnie obsługiwany.

Po stronie serwera jest obsługiwany przez IIS (RFC jest sponsorowany przez Microsoft) i ProFTPD (od 1.3.6rc1). Nie jest obsługiwany przez inne popularne serwery FTP Unix, takie jak Pure-FTPd lub vsftpd.

Po stronie klienta jest obsługiwany przez (mój) WinSCP . Nie jest obsługiwany przez FileZilla, ponieważ jego autor sprzeciwia się temu pomysłowi , ani przez CyberDuck. Nie wiem o innych.

Martin Prikryl
źródło
Dziękujemy, będzie to ważna kwestia w ciągu najbliższych kilku lat, kiedy ludzie natkną się na ten problem i przejdą do wyszukiwarki Google.
dotancohen
1
Dobrze wiedzieć. Chciałbym, żeby coś takiego istniało również dla ssh, ponieważ potrzebuję interfejsu, który mógłby wysyłać połączenia ssh wykonane z jednego adresu IP do różnych serwerów w oparciu o nazwę hosta. Ale wszystkie moje poprzednie badania zgadzają się z twoim wnioskiem, że nie istnieje dla ssh i nie można go łatwo dodać do protokołu.
kasperd
@kasperd, możesz użyć różnych numerów portów dla różnych połączeń. Lub możesz to zrobić na podstawie nazwy użytkownika.
AE
@AE Żadne z tych podejść nie zadziałałoby w moim przypadku użycia. Zanim muszę zdecydować, do którego serwera wysłać połączenie, klient nie wysłał jeszcze nazwy użytkownika. (Co więcej, jestem prawie pewien, że nazwa użytkownika jest wysyłana tylko w postaci zaszyfrowanej i nie wiem, jak zmimitować połączenie ssh w celu wyodrębnienia nazwy użytkownika). Numer portu również nie będzie działał, ponieważ mój interfejs faktycznie sprawdza nazwę hosta DNS w celu znalezienia backendu. (Frontend to podwójny stos, backendy nie mają żadnego publicznego adresu IPv4, celem frontendu jest udostępnienie
backendów
2
@kasperd Dodałem link do wątku listy mailingowej OpenSSH na temat dodawania tego do SSH.
Martin Prikryl