Apakah protokol SSH atau FTP memberi tahu server ke domain yang saya coba sambungkan?

25

Saat menggunakan perintah sshatau ftpdari Bash shell, apakah server yang saya hubungkan mengetahui nama domain yang digunakan? Saya mengerti bahwa nama domain diterjemahkan secara lokal ke alamat IP melalui DNS. Dalam HTTP, setelah itu terjadi, server juga diberi tahu nama domain asli untuk melayani halaman yang benar, atau untuk menyajikan sertifikat TLS yang benar (SNI).

host serverfault.com
GET /

Apakah fenomena serupa terjadi ketika menghubungkan ke sshatau ftp?

Saya bertanya karena saya mencoba ssh ke server (GoDaddy webhosting) yang mengharapkan nama domain, tetapi tidak membiarkan saya masuk ketika saya mencoba terhubung melalui user@IPaddresskarena DNS belum dipindahkan ke alamat IP GoDaddy.

dotancohen
sumber
Apakah Anda memiliki .ssh/configspesifik untuk nama host (atau alamat IP)? Kesalahan apa yang Anda dapatkan? (Hmm, ini adalah dukungan, tetapi tidak untuk tujuan menjawab pertanyaan ...)
Andreas Krey
Hanya generik Login authentication faileduntuk FTP dan Permission deniedSSH. Koneksi yang sebenarnya baik-baik saja, dan saya telah memeriksa empat kali lipat kredensial masuk.
dotancohen

Jawaban:

25

Tidak, klien SSH tidak meneruskan nama DNS yang Anda sambungkan ke server.
Seperti yang Anda katakan dengan benar, nama tersebut diselesaikan secara lokal ke alamat IP.

Sepertinya saya salah tentang FTP.
Lihat jawaban lain untuk detailnya.

pemalsu
sumber
5
Itu tidak berlaku untuk FTP lagi. Lihat jawaban saya
Martin Prikryl
Menarik, saya tidak tahu itu. Saya mengedit jawaban saya. Terima kasih!
faker
Sebenarnya, pada 2015 jawaban yang belum diedit masih benar di sebagian besar kasus. Itu mungkin berubah dalam beberapa tahun mendatang.
dotancohen
Saya bertanya-tanya berapa banyak klien yang mendukungnya. Bagaimanapun jawaban Anda lebih benar.
faker
@faker Saya telah menambahkan sedikit informasi tentang dukungan sisi klien yang saya tahu atm. Dapat melakukan penelitian lebih lanjut nanti.
Martin Prikryl
34

Protokol SSH / SFTP tidak memiliki mekanisme untuk menyediakan host ke server.

Ada diskusi tentang menambahkan fungsionalitas ini ke OpenSSH, lihat "Host virtual" untuk ssh .


Protokol FTP memang memiliki HOSTperintah, yang setara dengan Hostheader HTTP . Ini ditentukan oleh RFC 7151 yang relatif baru . RFC diterbitkan pada Maret 2014 (meskipun draf pertama dari 2007). Dengan demikian, belum didukung secara universal.

Pada server-side, itu didukung oleh IIS (RFC disponsori oleh Microsoft) dan proftpd (sejak 1.3.6rc1). Itu tidak didukung oleh server FTP Unix umum lainnya seperti Pure-FTPd atau vsftpd.

Di sisi klien, didukung oleh WinSCP (saya) . Itu tidak didukung oleh FileZilla, karena penulisnya menentang gagasan itu , atau oleh CyberDuck. Saya tidak tahu tentang orang lain.

Martin Prikryl
sumber
Terima kasih, ini akan menjadi pertimbangan penting dalam beberapa tahun ke depan ketika orang menemukan masalah ini dan mencari di google pertanyaan ini.
dotancohen
1
Itu bagus untuk diketahui. Saya berharap sesuatu seperti itu ada untuk ssh juga, karena saya memang membutuhkan frontend yang dapat mengirimkan koneksi ssh yang dibuat ke satu alamat IP ke server yang berbeda berdasarkan nama host. Tetapi semua penelitian saya sebelumnya setuju dengan kesimpulan Anda, bahwa itu tidak ada untuk ssh, dan tidak dapat dengan mudah ditambahkan ke protokol.
kasperd
@kasperd, Anda dapat menggunakan nomor port yang berbeda untuk koneksi yang berbeda. Atau Anda bisa melakukannya berdasarkan nama pengguna.
AE
@ AE Tidak ada pendekatan yang akan bekerja untuk kasus penggunaan saya. Pada saat saya harus memutuskan ke server mana untuk mengirim koneksi, klien belum mengirim nama pengguna. (Selain itu saya cukup yakin nama pengguna hanya mengirim terenkripsi, dan saya tidak tahu bagaimana cara mengurangi koneksi ssh untuk mengekstrak nama pengguna.) Nomor port tidak akan berfungsi baik karena frontend saya benar-benar melakukan pencarian DNS dari nama host untuk menemukan backend. (Frontend adalah dual stack, backend tidak memiliki alamat IPv4 publik, tujuan dari frontend adalah untuk membuat backend dapat diakses oleh klien khusus IPv4.)
kasperd
2
@kasperd Saya telah menambahkan tautan ke utas milis OpenSSH tentang menambahkan ini ke SSH.
Martin Prikryl