ssh登錄很慢解決方法

来源:http://www.cnblogs.com/Weltch/archive/2016/01/31/5173566.html
-Advertisement-
Play Games

使用ssh客戶端(如:putty)連接Linux伺服器,可能會等待10-30秒才有提示輸入密碼。嚴重影響工作效率。登錄很慢,登錄上去後速度正常,這種情況主要有兩種可能的原因: 1. DNS反向解析問題 OpenSSH在用戶登錄的時候會驗證IP,它根據用戶的IP使用反向DNS找到主機名,再使用DNS找


使用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 [email protected]  
  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: [email protected],[email protected],[email protected],[email protected],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,[email protected]  
  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,[email protected]  
  29. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96  
  30. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96  
  31. debug2: kex_parse_kexinit: none,[email protected],zlib  
  32. debug2: kex_parse_kexinit: none,[email protected],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,[email protected]  
  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,[email protected]  
  41. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96  
  42. debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96  
  43. debug2: kex_parse_kexinit: none,[email protected]  
  44. debug2: kex_parse_kexinit: none,[email protected]  
  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. [email protected]'s password:

轉載於https://blog.linuxeye.com/420.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_
  • 如圖是效果圖 我用的是SlidingMenu-master框架來實現的 左邊的是側滑界面是一個fragment,右邊是一個主界面fragment,在主界面中用的是一個ViewPager來進行切換,自定義個NoScrollViewPager(不能左右劃的ViewPager) 如下是主界面的代碼 pac
  • 本文將從四個方面對IOS開發中JSON格式數據的生成與解析進行講解: 一、JSON是什麼? 二、我們為什麼要用JSON格式的數據? 三、如何生成JSON格式的數據? 四、如何解析JSON格式的數據? JSON格式取代了xml給網路傳輸帶來了很大的便利,但是卻沒有了xml的一目瞭然,尤其是json數據
  • 函數SUBSTRING: 1、從左開始截取字元串 left(str, length) 說明:left(被截取欄位,截取長度) 例:select left(content,200) as abstract from my_content_t 2、從右開始截取字元串 right(str, length)
  • 前段時間實現某一個功能,涉及到對數據表的查詢操作,經本地與測試環境測試過後都沒問題,這一過程貌似都很順利,想想是不是要下班了啦(雖然時間好像也不早了),接著推入正式環境下進行最後的測試(心想應該不會有什麼問題吧,畢竟就只是對數據的查詢,而且都已經測試過了,數據也完好的輸出);
  • 編譯內核: 安裝內核源碼: 選擇內核:如gentoo sources 手動編譯內核: 必須啟用的選項: Most information can be gathered by emerging "sys apps/pciutils" which contains the command: 顯卡: "
  • ubuntu下安裝shadowsocks軟體不如windows下那麼直接,本文詳細介紹了在ubuntu系統下的ss伺服器端,客戶端,和瀏覽器插件配置。
  • 一. device的註冊1.0 兩個註冊//在smdk6410_machine_init中既註冊了touchscreen的私有信息也註冊了ts資源 在arch/arm/mach-s3c64xx/mach-smdk6410.c中 static void __init smdk6410_machine_
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...