SSH 或 FTP 協定是否告訴伺服器我要連接到哪個網域?

SSH 或 FTP 協定是否告訴伺服器我要連接到哪個網域?

當從 Bash shell 使用sshftp命令時,我要連接的伺服器是否了解所使用的網域名稱?據我了解,該網域是本地透過 DNS 轉換為 IP 位址。在 HTTP 中,發生這種情況後,伺服器也會被告知原始域名,以便提供正確的頁面,或提供正確的 TLS 憑證 (SNI)。

host serverfault.com
GET /

連結ssh或時是否也會出現類似的現象ftp

我之所以這麼問,是因為我正在嘗試 ssh 到需要網域的伺服器(GoDaddy 虛擬主機),但當我嘗試透過以下方式連接時,user@IPaddress由於 DNS 尚未移動到 GoDaddy IP 位址,因此不允許我進入。

答案1

不,SSH 用戶端不會將您連接到的 DNS 名稱傳遞到伺服器。
正如您所說,名稱在本機解析為 IP 位址。

看來我對FTP的理解是錯的。
詳情請參閱另一個答案。

答案2

SSH/SFTP 協定才不是有任何機制向伺服器提供主機。

有一個關於將此功能添加到 OpenSSH 的討論,請參閱ssh 的“虛擬主機”


FTP協定haveHOST指令,相當於 HTTPHost標頭。它是由一個相對較新的RFC 7151。 RFC 於 2014 年 3 月發布(儘管初稿是 2007 年的)。因此,它尚未得到普遍支持。

在伺服器端,它由 IIS 支援(RFC 由 Microsoft 贊助)並且FTPD協定(自 1.3.6rc1 起)。其他常見的 Unix FTP 伺服器(例如 Pure-FTPd 或 vsftpd)不支援它。

在客戶端,它由(我的) WinSCP。作為其作者,FileZilla 不支援它反對這個想法,也不是 Cyber​​Duck 的。我不知道其他人的情況。

相關內容