以下几种方法不需要同时设置,可能其中一种即可解决问题,请根据情况自行尝试。
1. 去除SSH服务中的DNS反向解析
SSH服务中的反向解析同样的也是为了通过审查请求来的IP和其IP存放在DNS服务器上面的域名是否能对应起来,来提高安全性。
但由于反向解析的存在,每个IP请求都会消耗一定时间来审查其合法性。对于局域网内服务器群、不直接连接外网的服务器或者已知访问的IP都是合法的地址等情况,其审查显得多余且长时间的查询会极大的影响SSH连接速度。
以下通过关闭SSH反向解析服务和在hosts文件中配置可信的访问地址来解决该问题。
A. 关闭SSH反向解析服务
# 1. 备份sshd配置文件 cp /etc/ssh/sshd_config /etc/ssh/sshd_config .bak.20150323.UseDNSYes2No # 2. 修改配置文件,取消sshd服务的dns反向解析 vim /etc/ssh/sshd_config # 3. 找到选项UseDNS ,取消注释,改为 UseDNS no # 4. 重启sshd服务 /etc/init.d/sshd restart
2. 关闭GSSAPI
修改本机的客户端配置文件ssh_conf,注意,不是sshd_conf
vi /etc/ssh/ssh_conf
找到
GSSAPIAuthentication yes
改为
GSSAPIAuthentication no
保存。
再连目标机器,速度就飞快了。
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题。我看到有人给ubuntu提交了相关bug, 说要将GSSAPIAuthentication的缺省值设为no,不知为何,ubuntu9.10的缺省值还是yes。
3. 关闭ssh登录显示信息
使用 root 账号打开 /etc/pam.d/sshd 文件找到如下两行:
session optional pam_motd.so motd=/run/motd.dynamic noupdate session optional pam_motd.so # [1]
把这两行注释掉即可,无需重启 ssh的服务器,再次通过 ssh 登录即不再显示。