ssh 速度慢的问题

jonathan
2016-04-13 / 0 评论

解决 SSH 速度慢的问题

SSH 连接速度慢是一个常见问题,主要原因通常是 sshd 服务器在尝试进行 DNS 反向查询,将客户端 IP 解析为主机名,这个过程如果 DNS 不可用或没有相关记录,会导致长时间等待。以下是几种解决方法:

方法一:基本配置修改

  1. 在服务器的 /etc/hosts 文件中添加客户端 IP 和主机名
  2. 在服务器的 /etc/ssh/sshd_config 文件中添加或修改 UseDNS=no
  3. 重启 SSH 服务
sudo systemctl restart sshd
# 或
sudo service sshd restart
# 或
sudo /etc/init.d/sshd restart

方法二:完整解决方案

如果方法一不能完全解决问题,可以尝试以下更全面的配置:

  1. 在服务器的 /etc/hosts 文件中添加:

    127.0.0.1 localhost
    # 添加客户端 IP 和主机名
    192.168.1.100 client-hostname
    
  2. 修改服务器的 /etc/ssh/sshd_config 文件:

    UseDNS no
    GSSAPIAuthentication no
    
  3. 编辑服务器的 /etc/resolv.conf 文件:

    # 方法1:使用本地 DNS
    nameserver 127.0.0.1
    
    # 方法2:注释掉所有行
    # nameserver 8.8.8.8
    
  4. 修改服务器的 /etc/nsswitch.conf 文件中的 hosts 行:

    hosts: files
    
  5. 修改 /etc/sysconfig/network 文件(如果存在):

    HOSTNAME=localhost
    
  6. 重启服务器或重启 SSH 服务:

    sudo systemctl restart sshd
    # 或完全重启服务器
    sudo reboot
    

方法三:客户端配置优化

除了服务器端配置外,也可以在客户端的 SSH 配置中进行优化:

  1. 编辑 ~/.ssh/config 文件(若不存在则创建):
    Host *
      GSSAPIAuthentication no
      Compression yes
      ControlMaster auto
      ControlPath ~/.ssh/control:%h:%p:%r
      ControlPersist yes
    
    # 针对特定服务器的优化
    Host server-name
      Hostname server-ip-address
      User username
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_rsa
    

额外排查步骤

如果以上方法仍不能解决 SSH 连接慢的问题,可以尝试以下步骤:

  1. 使用 -v 选项启用详细输出来诊断问题:

    ssh -v user@server
    
  2. 检查服务器的防火墙设置

  3. 检查 ~/.ssh/known_hosts 文件是否过大:

    wc -l ~/.ssh/known_hosts
    

    如果文件过大,可以备份并创建新文件

  4. 检查连接延迟:

    time ssh user@server exit
    
  5. 如果问题与 GSSAPI 认证相关,也可以在客户端禁用:

    ssh -o GSSAPIAuthentication=no user@server
    

以上配置和修改应该能解决大多数 SSH 连接缓慢的问题。请根据自己的具体环境选择合适的方法。

SSH

评论

博主关闭了当前页面的评论