在 Bash shell 中使用ssh
或ftp
命令时,我连接的服务器是否了解所使用的域名?我理解域名是本地通过 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 协议做有HOST
命令,相当于 HTTPHost
标头。它由一个相对较新的RFC 7151。RFC 于 2014 年 3 月发布(尽管第一稿是 2007 年的)。因此,它尚未得到普遍支持。
在服务器端,它由 IIS(RFC 由 Microsoft 赞助)支持,并且FTPD软件(自 1.3.6rc1 起)。其他常见的 Unix FTP 服务器(如 Pure-FTPd 或 vsftpd)不支持它。
在客户端,它支持(我的) 温SCP. 它不受 FileZilla 支持,因为它的作者反对这个想法,也不是 CyberDuck 的。我不知道其他人的情况。