題 當我通過SSH連接到我的Ubuntu 9.05服務器時,為什麼“密碼”提示會永遠存在?


回答: 事實上,它正在執行反向DNS解析。基於以下建議和 本文,我在我的sshd_config中添加了“UseDNS no”,重新啟動了ssh,現在立即顯示密碼提示。

當我SSH到我的服務器時,我得到標準的“login as:”提示符,然後是“user @ host's password:”提示符。無論出於何種原因,第二個總是需要一段時間才能顯示出來。我的服務器沒有任何負載,通常執行命令非常快。

現在,在我輸入用戶名和第二個提示顯示的時間之間,我們只聊了10秒左右,但是當你這麼做時,它會變得很煩人。我懷疑Ubuntu正在查找我的用戶帳戶,但它在整個安裝中有<5個帳戶。

更新@Josh 在/ var / log / messages中 確實包含這個寶石:

Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: Called
Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: username = [msmith]
Oct 28 16:54:59 Athena sudo: Warning: Using default salt value (undefined in ~/.ecryptfsrc)
Oct 28 16:55:01 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: There is already a key in the user session keyring for the given passphrase.

哪裡 msmith 是我的用戶名。這是什麼意思呢?


25
2017-10-28 16:16


起源


你知道(或想學習)如何使用Wireshark或者數據包嗅探器嗎? tcpdump?這可以告訴您服務器是否確實單獨使用了所有時間,或者實際上是在與客戶端進行通信。 - Arjan


答案:


是不是有可能做到了 反向DNS查找 你的IP?您可以查看結果 線上 如果客戶端使用公共IP地址,或者從服務器使用以下內容:

dig -x CLIENT_IP_ADDRESS

有沒有什麼 /var/log/messages


17
2017-10-28 16:47



我在日誌中有一個警告:警告:使用默認的salt值(在〜/ .ecryptfsrc中未定義)。我將整個部分發佈到了您的分析問題。 - rcampbell
@ rrc7cz,那反向DNS怎麼樣?你的IP地址是否解決了什麼問題? (我懷疑它會有所幫助,因為大多數情況下需要一些握手來決定是否應該顯示用戶名的提示。在我的Mac上使用Wireshark的快速測試顯示SSH在用戶名被要求之前很久就被啟動了。但 也許 有些客戶在嘗試連接之前會詢問該用戶名嗎??) - Arjan
我有這個反向DNS查找問題,在幾次安裝中減慢了我的ssh連接......如果你發現這是在/ etc / ssh / sshd_config中註釋掉“UseDNS yes”的情況並重啟sshd。 - John Barrett
@john,你還記得那是否放慢了速度 後 輸入用戶名? - Arjan
“UseDNS no”對我也有幫助!問答的UpVotes! - Grizly


可能反向DNS解析(服務器試圖獲得給定IP的客戶端名稱)需要時間。你能檢查/ etc / ssh / sshd_config是否設置了“VerifyReverseMapping yes”嗎?將其設置為“VerifyReverseMapping no”並檢查是否有幫助。

編輯:似乎現在不推薦使用VerifyReverseMapping,而useDNS是新的配置 sshd_config中


13
2017-10-29 10:18



這可能是真的,但是有意義的是,用戶名提示會立即顯示,之後需要10秒鐘才能被要求輸入密碼嗎? - Arjan
客戶端能夠解析服務器的名稱並發送請求,這就是立即顯示用戶提示的原因。但隨後服務器嘗試獲取客戶端的名稱(反向DNS解析)。如果輸入劑量不存在,這可能會超時。 sshd-config中的“VerifyReverseMapping”設置控制此檢查。 - secureBadshah
這是我的情況緩慢的原因,所以至少在某些情況下它確實有意義。請注意,默認值是 yes,所以不要只是搜索 useDNS 設置:) - Nanne


在您的sshd_config文件中設置GSSAPIAuthentication = no

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/84899


8
2017-10-30 05:58





您始終可以使用用戶名登錄:

ssh user@server

這會有什麼影響嗎?

如果您使用的是PuTTY,則可以在其下進行配置 連接 - >數據 作為自動登錄用戶名。


3
2017-10-28 16:21



雖然這顯然不會加快密碼提示出現所需的時間,但它肯定會加快整個登錄過程。謝謝 - rcampbell


如果你沒有適當的域名,只需要做些什麼並把它放進去 /etc/hosts。看看是否更快...不要打擾 .com 只需使用“bob,carol,ted,alice”或任何你想要的東西......

如果問題是解析器超時,那麼這將解決它。


3
2017-10-28 19:49





記得那個 客戶 還將執行反向DNS檢查檢查,如果某些分辨率配置中不存在反向DNS映射,則可能需要30秒或更長時間才能超時。

在任何一個 /etc/ssh/ssh_config 或者在 ~/.ssh/config 組 CheckHostIP no 禁用此客戶端查找。

看到 man 5 ssh_config 了解更多詳情。


1
2017-12-05 20:38





我找到了解決這個問題的另一種方法: - http://www.patrickmin.com/linux/tip.php?name=ssh_pause

我在Windows下使用Putty登錄到linux構建機器時遇到同樣的問題。將我的Windows框的IP地址添加到linux機器上的/ etc / hosts解決了這個問題。


1
2017-12-19 10:36



歡迎來到超級用戶 - 我們通常更喜歡您包含詳細信息而不僅僅是鏈接。你能編輯你的答案,從鏈接中添加更多信息嗎? - Simon Sheehan


僅僅為了記錄,我遇到了同樣的問題,其中ssh從家到我的家庭服務器(主要用於git)很快,但是工作需要10-20秒來獲得密碼提示。

我不得不關掉 UseDNS no 並重新啟動 sshd  sudo systemctl restart sshd.service。然後它可以在所有位置工作。

我知道問題已得到解答和接受,但我想添加信息,因為我必須“主動”設置它 沒有 為了讓它停止使用DNS。


1
2017-07-14 10:40





請檢查nslcd(LDAP守護程序)是否正在運行:

ps -ef | grep nslcd

它可能會導致這個問題。

如果正在運行,請將其停止並從服務列表中刪除

service nslcd stop
chkconfig nslcd off

0
2017-10-10 12:14