现在连接linux服务器一般都是使用SSH远程连接的方式。最近新装了一台服务器,发现telnet时速度很快,ping时一切也正常,但SSH连接的时候却很慢。经过网上资料查询,大致是有以下几种原因:

1、SERVER的SSHD会去DNS查找访问的CLIENT IP的HOSTNAME,如果DNS不可用或者没有相关记录,就会消耗一段时间。

2、在authentication gssapi-with-mic有时候也会消耗一段时间

一、测试查找具体原因:

1、使用ssh -v host进行debug

# ssh -v 192.168.100.10

然后就会输出一大堆debug,通过debug信息就可以看到连接到什么地方被耽搁了

比如会显示如下信息:

debug1: Next authentication method: gssapi-with-mic

debug1: Unspecified GSS failure. Minor code may provide more information

No credentials cache found

2、检测连接时间

# time ssh root@192.168.100.10 exit

二、解决方法(建议一个个设置,因为每个人连接慢的原因都不一样):

注意:修改之后记得重启sshd服务

# service sshd restart

1、关闭DNS反向解析

在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭。

# vi /etc/ssh/sshd_config
UseDNS=no

在配置文件中,虽然UseDNS yes是被注释的,但默认开关就是yes

2、关闭SERVER上的GSS认证

在authentication gssapi-with-mic有很大的可能出现问题,因此关闭GSS认证可以提高ssh连接速度。

# vi /etc/ssh/sshd_config
GSSAPIAuthentication no

3、修改server上nsswitch.conf文件

# vi /etc/nsswitch.conf
找到
hosts: files dns
改为
hosts:files

hosts: files dns这一行含义是对于访问的主机进行域名解析的顺序,是先访问file,也就是/etc/hosts文件,如果hosts中没有记录域名,则访问dns,进行域名解析,如果dns也无法访问,就会等待访问超时后返回,因此等待时间比较长。

注意:如果SERVER需要通过域名访问其他服务器,则需要保留此行。

4、修改SERVER上resolv.conf文件

4.1、删除/etc/resolv.conf中所有不使用的IP。

4.2、把nameserver全部删除,问题也能解决,但是服务器就无法上网了。

4.3、如果SERVER曾经配置过双网卡,则在该文件中会有一行目前不使用的IP地址,删除该行即可。

5、修改SERVER上hosts文件

在SERVER上/etc/hosts文件中把客户端的IP和HOSTNAME加入

6、打开SERVER上的IgnoreRhosts参数

IgnoreRhosts参数可以忽略以前登录过主机的记录,设置为yes后可以极大的提高连接速度

# vi /etc/ssh/sshd_config
IgnoreRhosts yes

----------------以上的均在SERVER上设置,以下的均在CLIENT上设置-------------------

7、修改客户端的hosts文件

将目标SERVER的IP和域名加上去,使得本机的DNS服务能解析目标地址。

# vi /etc/hosts
192.168.100.11  doiido.com

注:hosts文件格式为'目标SERVER_IP 目标SERVER_NAME'。但是使用这个方法有一个弊端,如果需要给每台SERVER都添加一个域名解析。

8、修改客户端配置文件ssh_conf(注意,不是sshd_conf)

# vi /etc/ssh/ssh_conf
找到
GSSAPIAuthentication yes
改为
GSSAPIAuthentication no

转载于:https://blog.51cto.com/doiido/1563498

linux中解决SSH连接慢问题相关推荐

  1. ssh连接缓慢 ssh连接失败问题 Linux 脚本解决ssh连接缓慢问题,windows解决本地ssh连接失败

    解决sshd连接缓慢 Linux系统 脚本 #!/bin/bash #更改ssh连接缓慢问题 echo "请输入要更改的主机名,回车跳过" read i if [[ "$ ...

  2. linux 连接自动断开时间,两种解决SSH连接Linux超时自动断开的方法

    引言 个人在工作中经常用xshell远程登录服务器进行各种操作,但因为生产服务器环境变量和ssh配置不尽相同,也造成了工作上的一些不便,比如正在进行中的工作中断,需要重新连接-- 解决ssh连接Lin ...

  3. aws linux使用ssh登陆_【Linux】 使用ssh连接远程服务器

    [Linux] 使用ssh连接远程服务器 前言:SSH,英文全称是Secure Shell Protocol(安全的壳程序协议).SSH是现在公司基本上都在使用的一种文字接口的加密传输技术,采用的是非 ...

  4. linux 更改ssh端口_如何在Linux中更改SSH端口-简易指南

    linux 更改ssh端口 The default port on SSH is 22. But for security reasons, it's a good idea to change SS ...

  5. Linux中Mycat远程连接Mysql8.0提示密码错误

    Linux中Mycat远程连接Mysql8.0提示密码错误 问题: 当在linux中使用mycat远程连接时候会提示密码错误,具体如下: 解决 防火墙 最开始以为是防火墙未关闭 通过查看防火墙状态发现 ...

  6. 解决SSH连接出现 Software caused connection abort 的问题

    解决SSH连接出现 Software caused connection abort 的问题 参考文章: (1)解决SSH连接出现 Software caused connection abort 的 ...

  7. unity连接linux服务器,C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令...

    本文主要向大家介绍了C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. 在Unity3D项目开发工具时需要用到S ...

  8. Linux中的软硬连接

    Linux中的软硬连接 Linux中的连接被分为软连接和硬连接,软连接又被称为符号连接.这种连接操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不 ...

  9. Linux网络协议栈:Linux 中每个 TCP 连接最少占用多少内存?

    Linux 中每个 TCP 连接最少占用多少内存? https://zhuanlan.zhihu.com/p/25241630 因为原文作者明确说明,不可转载,这里我只给出链接,仅供参考.

最新文章

  1. 多模态学习研讨会:预训练是AI未来所需要的全部吗?
  2. Spring的静态代理和动态代理
  3. Androidstudio如何正确导入和移出jar包
  4. 记录工作中常用的CSS3
  5. 乐高ev3 读取外部数据_数据就是新乐高
  6. mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column
  7. sql语句优化的一些办法
  8. Matlab | matpower5.0:最优潮流执行步骤及修改教程
  9. 一些自己收藏的有用的资料
  10. 禁止QQ自动转义表情字符
  11. IDEA光标变成白色粗条的问题
  12. easyUI非常迷惑性的bug:分页插件点击下一页和尾页后,发送两次请求,第二次请求回跳转到第一页
  13. 解决电脑右侧数字键盘无法打出数字问题
  14. 用户如何向计算机安装软件,按计算机安装同步应用
  15. SpringCloud项目搭建(六) —elastic-job的使用,以及consul的配置使用(衔接上篇)
  16. 从天问一号拍摄到高清火星影像图说起
  17. 安全事件响应观察报告家族
  18. AutoCAD 删除集合对象中的成员
  19. SDN(一) 用OpenWRT将路由器刷成openflow交换机
  20. 灰帽python_灰帽 Python之旅11

热门文章

  1. 全家竟然都迷陕西卫视的《关东男人》
  2. 今天什么日子啊,这么倒霉。。。
  3. 小知识一、让Swift继续用OC#warning效果
  4. saltstack state模块-状态管理
  5. 鱼缸式百分比信息图表,这样计算才正确
  6. 理解 TCP(二):报文结构
  7. Python多线程thread与threading实现
  8. 数据库结构Sqlite与CoreData
  9. 基本类型和引用类型的传值
  10. ASP.NET连接带密码Access的方法