我正在使用远程托管服务。每次我连接到它。
我花了 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 的手册页。