【SSH】关闭UseDNS和GSSAPIAuthentication选项,解决SSH登录慢问题

经常登陆SSH的朋友可以感觉出,每次登录SSH时总是要停顿等待一下才能连接上。

通常情况下我们在连接 OpenSSH服务器的时候假如 UseDNS选项是打开的话,服务器会先根据客户端的 IP地址进行 DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始 IP地址一致,通过此种措施来防止客户端欺骗。平时我们都是动态 IP不会有PTR记录,所以打开此选项也没有太多作用,我们可以通过关闭此功能来提高连接 OpenSSH 服务器的速度。


SSAPI:Generic Security Services Application Program Interface,GSSAPI 本身是一套 API,由 IETF 标准化。

其最主要也是著名的实现是基于 Kerberos 的。一般说到 GSSAPI 都暗指 Kerberos 实现。

GSSAPI 是一套通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。


上面说的 GSSAPI 相关具体配置是什么?主要是 GSSAPIAuthentication,这个默认值为 yes。

网上搜索 GSSAPI 的关键字,就会出现一大堆 SSH 登录慢的网页中有说到修改这个 GSSAPIAuthentication 为 no,可以加快 SSH 登录。

为何呢? 

SSH 默认开启了 GSSAPIAuthentication 认证,

一般 SSH 依次进行的认证方法的是 publickey, gssapi-keyex, gssapi-with-mic, password, 这个你可以ssh -v开启 debug 模式在连接日志看到。   一般用户只使用 password 认证方式,但前面 3 个认证过程系统还是会尝试,这就浪费时间了,也就造成 SSH 登录慢。

关于 GSSAPI 相关的认证,消耗的时间比较多,具体可以查看 SSH 连接日志。

GSSAPI 主要是基于 Kerberos 的,因此要解决这个问题也就变成要系统配置有 Kerberos, 一般用户是没有配置 Kerberos的,反正我是没见过这种方式 SSH 登录的。 所以那就直接把 SSH 服务端的 GSSAPIAuthentication 直接关掉吧,客户端也可以关掉。


#  echo "UseDNS no" >> /etc/ssh/sshd_config

#  echo "GSSAPIAuthentication no" >> /etc/ssh/sshd_config

# systemctl  resart sshd  


# ssh -v -o GSSAPIAuthentication=no [email protected]



SSH登录缓慢问题的解决

https://blog.51cto.com/freewiller/793718


SSH 中的 GSSAPI 相关选项 

https://juejin.im/entry/5bcda229f265da0a951f1423


关闭OpenSSH UseDNS选项加速SSH登录

https://blog.csdn.net/fly4869/article/details/71125160


Linux系统下的SSH使用经验

https://www.cnblogs.com/kevingrace/p/6110842.html

你可能感兴趣的:(【SSH】关闭UseDNS和GSSAPIAuthentication选项,解决SSH登录慢问题)