ssh登录很慢解决方法

    使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码。严重影响工作效率。登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因:

    1. DNS反向解析问题

    OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。

    解决办法:在目标服务器上修改sshd服务器端配置,并重启sshd

    1. vi /etc/ssh/sshd_config
    2. UseDNS no

    2. 关闭ssh的gssapi认证

    用ssh -v user@server 可以看到登录时有如下信息:

    1. debug1: Next authentication method: gssapi-with-mic
    2. debug1: Unspecified GSS failure. Minor code may provide more information

    注:ssh -vvv user@server 可以看到更细的debug信息

    解决办法:

    修改sshd服务器端配置

    1. vi /etc/ssh/ssh_config
    2. GSSAPIAuthentication no

    可以使用ssh -o GSSAPIAuthentication=no user@server登录

    GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题

    使用strace查看后发现,ssh在验证完key之后,进行authentication gssapi-with-mic,此时先去连接DNS服务器,在这之后会进行其他操作

    1. [root@192-168-3-40 ~]# ssh -vvv root@192.168.3.44  
    2. OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013  
    3. debug1: Reading configuration data /etc/ssh/ssh_config  
    4. debug1: Applying options for *  
    5. debug2: ssh_connect: needpriv 0  
    6. debug1: Connecting to 192.168.3.44 [192.168.3.44] port 22.  
    7. debug1: Connection established.  
    8. debug1: permanently_set_uid: 0/0  
    9. debug1: identity file /root/.ssh/identity type -1  
    10. debug1: identity file /root/.ssh/identity-cert type -1  
    11. debug1: identity file /root/.ssh/id_rsa type -1  
    12. debug1: identity file /root/.ssh/id_rsa-cert type -1  
    13. debug1: identity file /root/.ssh/id_dsa type -1  
    14. debug1: identity file /root/.ssh/id_dsa-cert type -1  
    15. debug1: identity file /root/.ssh/id_ecdsa type -1  
    16. debug1: identity file /root/.ssh/id_ecdsa-cert type -1  
    17. debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3  
    18. debug1: match: OpenSSH_5.3 pat OpenSSH*  
    19. debug1: Enabling compatibility mode for protocol 2.0  
    20. debug1: Local version string SSH-2.0-OpenSSH_5.3  
    21. debug2: fd 3 setting O_NONBLOCK  
    22. debug1: SSH2_MSG_KEXINIT sent  
    23. debug3: Wrote 960 bytes for a total of 981  
    24. debug1: SSH2_MSG_KEXINIT received  
    25. debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1  
    26. debug2: kex_parse_kexinit: ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss  
    27. debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
    28. debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
    29. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
    30. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
    31. debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib  
    32. debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib  
    33. debug2: kex_parse_kexinit:  
    34. debug2: kex_parse_kexinit:  
    35. debug2: kex_parse_kexinit: first_kex_follows 0  
    36. debug2: kex_parse_kexinit: reserved 0  
    37. debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1  
    38. debug2: kex_parse_kexinit: ssh-rsa,ssh-dss  
    39. debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
    40. debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
    41. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
    42. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
    43. debug2: kex_parse_kexinit: none,zlib@openssh.com  
    44. debug2: kex_parse_kexinit: none,zlib@openssh.com  
    45. debug2: kex_parse_kexinit:  
    46. debug2: kex_parse_kexinit:  
    47. debug2: kex_parse_kexinit: first_kex_follows 0  
    48. debug2: kex_parse_kexinit: reserved 0  
    49. debug2: mac_setup: found hmac-md5  
    50. debug1: kex: server->client aes128-ctr hmac-md5 none  
    51. debug2: mac_setup: found hmac-md5  
    52. debug1: kex: client->server aes128-ctr hmac-md5 none  
    53. debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent  
    54. debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP  
    55. debug3: Wrote 24 bytes for a total of 1005  
    56. debug2: dh_gen_key: priv key bits set: 120/256  
    57. debug2: bits set: 506/1024  
    58. debug1: SSH2_MSG_KEX_DH_GEX_INIT sent  
    59. debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY  
    60. debug3: Wrote 144 bytes for a total of 1149  
    61. debug3: check_host_in_hostfile: host 192.168.3.44 filename /root/.ssh/known_hosts  
    62. debug3: check_host_in_hostfile: host 192.168.3.44 filename /root/.ssh/known_hosts  
    63. debug3: check_host_in_hostfile: match line 8  
    64. debug1: Host '192.168.3.44' is known and matches the RSA host key.  
    65. debug1: Found key in /root/.ssh/known_hosts:8  
    66. debug2: bits set: 527/1024  
    67. debug1: ssh_rsa_verify: signature correct  
    68. debug2: kex_derive_keys  
    69. debug2: set_newkeys: mode 1  
    70. debug1: SSH2_MSG_NEWKEYS sent  
    71. debug1: expecting SSH2_MSG_NEWKEYS  
    72. debug3: Wrote 16 bytes for a total of 1165  
    73. debug2: set_newkeys: mode 0  
    74. debug1: SSH2_MSG_NEWKEYS received  
    75. debug1: SSH2_MSG_SERVICE_REQUEST sent  
    76. debug3: Wrote 48 bytes for a total of 1213  
    77. debug2: service_accept: ssh-userauth  
    78. debug1: SSH2_MSG_SERVICE_ACCEPT received  
    79. debug2: key: /root/.ssh/identity ((nil))  
    80. debug2: key: /root/.ssh/id_rsa ((nil))  
    81. debug2: key: /root/.ssh/id_dsa ((nil))  
    82. debug2: key: /root/.ssh/id_ecdsa ((nil))  
    83. debug3: Wrote 64 bytes for a total of 1277  
    84. debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password  
    85. debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password  
    86. debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password  
    87. debug3: authmethod_lookup gssapi-keyex  
    88. debug3: remaining preferred: gssapi-with-mic,publickey,keyboard-interactive,password  
    89. debug3: authmethod_is_enabled gssapi-keyex  
    90. debug1: Next authentication method: gssapi-keyex  
    91. debug1: No valid Key exchange context  
    92. debug2: we did not send a packet, disable method  
    93. debug3: authmethod_lookup gssapi-with-mic  
    94. debug3: remaining preferred: publickey,keyboard-interactive,password  
    95. debug3: authmethod_is_enabled gssapi-with-mic  
    96. debug1: Next authentication method: gssapi-with-mic  
    97. debug3: Trying to reverse map address 192.168.3.44.  
    98. debug1: Unspecified GSS failure.  Minor code may provide more information  
    99. Cannot determine realm for numeric host address  
    100.   
    101. debug1: Unspecified GSS failure.  Minor code may provide more information  
    102. Cannot determine realm for numeric host address  
    103.   
    104. debug1: Unspecified GSS failure.  Minor code may provide more information  
    105.   
    106.   
    107. debug1: Unspecified GSS failure.  Minor code may provide more information  
    108. Cannot determine realm for numeric host address  
    109.   
    110. debug2: we did not send a packet, disable method  
    111. debug3: authmethod_lookup publickey  
    112. debug3: remaining preferred: keyboard-interactive,password  
    113. debug3: authmethod_is_enabled publickey  
    114. debug1: Next authentication method: publickey  
    115. debug1: Trying private key: /root/.ssh/identity  
    116. debug3: no such identity: /root/.ssh/identity  
    117. debug1: Trying private key: /root/.ssh/id_rsa  
    118. debug3: no such identity: /root/.ssh/id_rsa  
    119. debug1: Trying private key: /root/.ssh/id_dsa  
    120. debug3: no such identity: /root/.ssh/id_dsa  
    121. debug1: Trying private key: /root/.ssh/id_ecdsa  
    122. debug3: no such identity: /root/.ssh/id_ecdsa  
    123. debug2: we did not send a packet, disable method  
    124. debug3: authmethod_lookup password  
    125. debug3: remaining preferred: ,password  
    126. debug3: authmethod_is_enabled password  
    127. debug1: Next authentication method: password  
    128. root@192.168.3.44's password:  
    Tue Jun  2 14:02:18 CST 2015
    • 本文由 发表于 2015-06-02
    • 转载请务必保留本文链接:https://linuxeye.com/420.html
    Consul集群配置 Linux

    Consul集群配置

    consul原理 上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Se...
    CentOS、Ubuntu、Debian依赖源配置 Linux

    CentOS、Ubuntu、Debian依赖源配置

    基础文档来一一篇,本文档以配置阿里云源为例,可将地址替换为其它源,如清华源地址:mirrors.tuna.tsinghua.edu.cn CentOS 7 yum源 rm -rf /etc/yum.r...
    匿名

    发表评论

    匿名网友