1、关闭DNS反查
使用了dns反查,这样的话当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如果DNS中没有这个IP的域名解析,则会等到DNS查询超时才会进行下一步,消耗很长时间。
修改如下图:
原配置:
修改后:
2、关闭GSSAPIAuthentication
这种情况在本地主机或远程主机启动图形的情况下比较明显,该参数似乎是在做图形方面的认证,具体功能还不清楚,但修改以后可以明显提高ssh远程登录速度。
修改GSSAPIAuthentication参数为 no,默认是yes
3、上述两种参数直接一个sed命令改完:
sed -ie "/UseDNS/s/yes/no/g;/UseDNS/s/#//g;/^GSSAPI/s/yes/no/g" /etc/ssh/sshd_config
GSSAPIAuthentication参数是打开的,#号原本就没有,直接改值即可,UseDNS还需要去掉#号
4、最后重启ssh服务
systemctl restart sshd
注:如果还是连接慢,可以重启一下被ssh连接的服务器,还有就是上述所有的改配置参数只需要在被ssh连接的服务器上修改即可!
5、ssh持久化连接优化ansible
ControlPersist SSH优化:
ControlPersist 特性需要高版本的SSH支持,CentOS6默认是不支持的,如果需要使用,需要自行升级Openssh。
ControlPersist 即持久化的Socket,一次验证多次通信。并且只需要修改SSH客户端配置,也即Ansible被管理主机。
可使用YUM或者源码编译升级OpenSSH服务,升级完毕ControlPersist的设置办法如下,在其用户的家目录创建config文件,如果ansible以root用户登录客户端,至需要在客户端的/root/.ssh/config文件中添加如下代码即可:
Host *
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 5
ControlMaster auto
ControlPath ~/.ssh/%r@%h-%p
ControlPersist 4h
开启ControlPersist 特性后,SSH 在建立sockets后,节省了每次验证和创建的时间,对Ansible执行速度提升是非常明显的。