SSH登录很慢问题的解决方法

用ssh连其他linux机器,会等待10-30秒才有提示输入密码,严重影响工作效率。登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因

注:ssh -v user@server 可以看到debug信息,能够获知当前阻塞在哪.

1. DNS反向解析的问题

OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。

解决办法:

在目标服务器上修改sshd服务器端配置,并重启sshd
vi /etc/ssh/sshd_config,设置UseDNS为no即可
当然也可以通过提供DNS正确反向解析的方法解决,有如下两种思路:

  1. 在server上/etc/hosts文件中把常用的ip和hostname加入,然后在/etc/nsswitch.conf看看程序是否先查询hosts文件(一般缺省是这样)。
    修改server上的hosts文件,将目标机器的IP和域名加上去。或者让本机的DNS 服务器能解析目标地址。
    vi /etc/hosts
    192.168.12.16 ourdev

    其格式是“目标机器IP 目标机器名称”这种方法促效。没有延迟就连上了。不过如果给每台都加一个域名解析,挺辛苦的。但在windows下用putty或secure-crt时可以采用这种方法。

  2. 起一台dns服务器(可以是本机),加入反向解析,把这个dns服务器加入到/etc/resolv.conf 中。

2. 关闭ssh的gssapi认证

用ssh -v user@server 可以看到登录时有如下信息:

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information

解决办法:

在客户端上修改ssh客户端配置(注意不是sshd_conf)
vi /etc/ssh/ssh_config,设置GSSAPIAuthentication no 并重启sshd

GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题.

使用strace查看后发现,ssh在验证完key之后,进行authentication gssapi-with-mic,此时先去连接DNS服务器,在这之后会进行其他操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值