现象:业务使用ssh登录对端,获取对端公钥速度很快,但是等待输入密码的时间非常慢,输入密码后登录也很快。
原因分析:
在慢机器上ssh另一个机器, ssh -v root@10.1.25.42 ,可以看到一直卡在下面位置过不去
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
上网查询gssapi-with-mic,是一种验证方式:
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题
用strace ssh root@10.1.25.42,查看卡住位置,可以看到查询/etc/hosts,然后打开了一个socket,取查询114.114.114.114,这个是我在/etc/resolv.conf里面设置的DNS,因此卡在了sendto函数,一直无法查询到结果。
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=186, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =