为什么 Fabric 可以立即连接到远程主机,而正常连接却需要等待 20 秒?

为什么 Fabric 可以立即连接到远程主机,而正常连接却需要等待 20 秒?

我正在使用远程托管服务。每次我连接到它。

我花了 20 秒甚至更长时间才等待密码输入行提示出来。

但今天我使用了 python fabric 模块。

我在环境配置中设置了主机名和密码。

并在一秒钟内连接到远程主机并执行命令。

这里发生了什么?

答案1

我认为 GSSAPIAuthentication 和反向 DNS 解析是导致此问题的两个常见原因。由于 Fabric 响应迅速,因此表明服务器上未启用反向 DNS 解析。

如果您使用:-

ssh -o GSSAPIAuthentication=no <username@host>

如果情况有所改善,那么您可以通过将其添加到 来使其永久生效GSSAPIAuthentication no~/.ssh/ssh_config或者,也可以通过在您的服务器上将相同的 添加到 来使其永久生效/etc/ssh/ssh_config(路径可能略有不同)。

GSS-API 用于单点登录场景。例如,使用 Kerberos 服务器管理您的用户。远程托管服务很可能不会提供此类服务,因此在这种情况下 GSS-API 与您无关,因此可以禁用。

如果您使用几个-v选项进行连接,您应该会看到客户端和服务器正在尝试(未成功)协商 GSS:-

ssh -vvv <username@host>

Host您可以通过在文件中添加关键字来逐个主机禁用此功能ssh_config:-

Host my_remote_hosting_server_hostname
GSSAPIAuthentication no

有关更多详细信息,请参阅 ssh_config 的手册页。

相关内容