免密访问原理:A访问B
A生成密钥对rsa或者dsa算法加密的公私钥到/root/.ssh下
将A上公钥xxx.pub加入B/root/.ssh/authorized_keys认证公钥中
配置B上sshd服务StrictHostKeyChecking为no重启
问题:SSH连接服务端慢的问题
1、服务端对客户端连接域名进行了DNS解析核验防止域名欺骗(私网无域名管理和PTR记录直至超时)
解决:/etc/ssh/sshd_config的UseDNS设置no
2、客户端开启GSSAPIAuthentication
SSH 默认开启了 GSSAPIAuthentication 认证, 一般 SSH 依次进行的认证方法的是 publickey, gssapi-keyex, gssapi-with-mic, password, 这个你可以ssh -v开启 debug 模式在连接日志看到。 一般用户只使用 password 认证方式,但前面 3 个认证过程系统还是会尝试,这就浪费时间了,也就造成 SSH 登录慢。
关于 GSSAPI相关的认证,消耗的时间比较多,具体可以查看 SSH 连接日志。 启动过程中会尝试访问DNS服务,导致慢的主要原因。GSSAPI 主要是基于 Kerberos 的,因此要解决这个问题也就变成要系统配置有 Kerberos, 一般用户是没有配置 Kerberos的,反正我是没见过这种方式 SSH 登录的。 所以那就直接把 SSH 服务端的 GSSAPIAuthentication 直接关掉吧,客户端也可以关掉。
解决:/etc/ssh/ssh_config的GSSAPIAuthentication设置no