沙滩星空的博客沙滩星空的博客

vagrant 虚拟机内进行ssh登录缓慢的解决办法

环境:
在 window10 安装了 Virtual Box 虚拟机,并使用 Vagrant 安装了 Homestead 盒子。

问题
虚拟机内的 Linux 系统,每次进行 SSH 登录的时候,感觉都比 windows 宿主机使用 PUTTY 工具登录要慢很多。

分析

在登陆过程中经常协商之后有个认证的顺序,然后依次选择认证方式,直到认证成功。
ssh 命令行中可以通过增加 -vvv 选项来进行 debug 整个登陆的过程。

ssh root@123.98.23.123 -vvv
......
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
# (卡住好几秒)
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_1000)
# (又卡住几秒)
......

发现在以上地方卡了一段时间才登录。

GSSAPI 认证,客户端需要反向解析服务端的IP。由于客户端侧配置的 DNS 服务器不可达,导致超时重试多次。

解决

在使用 SSH 登录的 Linux 虚拟机上:
ssh 客户端配置( /etc/ssh/ssh_config )将 GSSAPIAuthentication 设为 no

或者下面任何一种都可:

ssh 服务端配置( /etc/ssh/sshd_config )将 GSSAPIAuthentication 设为 no
ssh 客户端正确配置 DNS 服务器( /etc/resolv.conf )
ssh 客户端 hosts 文件( /etc/hosts )增加服务端的IP、主机名对应关系


其他可能

useDNS 配置导致登陆慢

在登陆的过程中,服务端发起多次反向域名解析的请求。 反向域名解析就是根据IP查找域名的过程。
ssh服务端向DNS服务器发起反向域名解析的请求,请求解析客户端IP的域名。
由于DNS服务器配置( /etc/resolv.conf )的不正确,导致发出的请求未有响应,每隔5s超时重试一次。

该配置主要用于安全加固,服务器会先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始IP地址一致,通过此种措施来防止客户端欺骗。

解决:
ssh 服务端的配置文件(通常是 /etc/ssh/sshd_config )中设置 useDNS no,然后重启 ssh 服务。


Linux ssh 登陆慢的两种原因分析 https://www.cnblogs.com/xysr-tom/p/10695407.html

未经允许不得转载:沙滩星空的博客 » vagrant 虚拟机内进行ssh登录缓慢的解决办法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址