filezilla 中 root 身份驗證失敗太多

filezilla 中 root 身份驗證失敗太多

所以我終於把我的辦公室搬到 Ubuntu了!總的來說,我對從 Mac 和 Windows 的遷移感到非常滿意。我能夠解決大多數問題(顯示卡問題),但我似乎解決了這個問題,但它不斷出現。

我正在使用 Filezilla 並且有一個自訂 SSH 配置。我還注意到 PHPStorm 上也發生這種情況。我假設 FileZilla 的修復也會修復 PHPStorm。

我的 SSH 設定是:

# Catch all
Host *
 ServerAliveInterval 120
 ServerAliveCountMax 30
 IdentitiesOnly yes

# Local Dev VM
Host jpCentos devel jp
 HostName jpCentos
 User adminJeremy
 IdentityFile /home/jpsimkins/.ssh/jpCentos
 IdentitiesOnly yes

# Local Dev VM Root (added as work-a-round for filezilla)
Host jpCentosRoot jpRoot
 HostName jpCentos
 User root
 IdentityFile /home/jpsimkins/.ssh/jpCentosRoot
 IdentitiesOnly yes

# Kyle Dev VM
Host kkCentos kk
 HostName kkCentos
 User adminJeremy
 IdentityFile /home/jpsimkins/.ssh/jpCentos
 IdentitiesOnly yes

# Staging Server
Host stagingServer staging stage
 HostName 10.1.1.120
 User adminJeremy
 IdentityFile /home/jpsimkins/.ssh/StagingServer
 IdentitiesOnly yes

# OlympusatV2 PRODuction Server 
Host olympusatV2 v2 live prod
 HostName 166.78.xxx.xxx
 User adminJeremy
 IdentityFile /home/jpsimkins/.ssh/OlympusatV2
 IdentitiesOnly yes

# OlympusatV2 PRODuction Server Root User (added as work-a-round for filezilla)
Host olympusatV2Root v2Root v2root liveroot prodRoot prodroot
 HostName 166.78.xxx.xxx
 User root
 IdentityFile /home/jpsimkins/.ssh/OlympusatV2Root
 IdentitiesOnly yes

# ParablesServer
Host parablesServer ps
 HostName 162.242.xxx.xxx
 User adminJeremy
 IdentityFile /home/jpsimkins/.ssh/ParablesServer
 IdentitiesOnly yes

# ParablesServerRoot  (added as work-a-round for filezilla)
Host parablesServerRoot psRoot psroot ParablesServerRoot
 HostName 162.242.xxx.xxx
 User root
 IdentityFile /home/jpsimkins/.ssh/ParablesServerRoot
 IdentitiesOnly yes

名稱 HostName 映射在我的 .hosts 檔案中。這使得我在辦公室之間移動時可以更輕鬆地更新 IP。應該注意的是,即使我使用 IP 來代替 .hosts 檔案別名,問題也是一樣的。

我的問題是,每次我嘗試透過 SFTP 連接到伺服器時,都會得到:

Command:    open "[email protected]" 22
Error:  Server sent disconnect message
Error:  type 2 (protocol error):
Error:  "Too many authentication failures for root"
Error:  Could not connect to server

Filezilla 詳細說明:

Status: Connecting to 10.1.1.69...
Trace:  Going to execute /usr/bin/fzsftp
Response:   fzSftp started
Trace:  CSftpControlSocket::ConnectParseResponse(fzSftp started)
Trace:  CSftpControlSocket::SendNextCommand()
Trace:  CSftpControlSocket::ConnectSend()
Command:    open "[email protected]" 22
Trace:  Server version: SSH-2.0-OpenSSH_5.3
Trace:  Using SSH protocol version 2
Trace:  We claim version: SSH-2.0-PuTTY_Local:_Sep_14_2013_01:12:43
Trace:  Doing Diffie-Hellman group exchange
Trace:  Doing Diffie-Hellman key exchange with hash SHA-256
Trace:  Host key fingerprint is:
Trace:  ssh-rsa 2048 ae:7c:66:41:8d:5a:18:53:ea:ca:ac:0a:ce:27:cc:4d
Trace:  Initialised AES-256 SDCTR client->server encryption
Trace:  Initialised HMAC-SHA1 client->server MAC algorithm
Trace:  Initialised AES-256 SDCTR server->client encryption
Trace:  Initialised HMAC-SHA1 server->client MAC algorithm
Trace:  Pageant is running. Requesting keys.
Trace:  Pageant has 10 SSH-2 keys
Trace:  Trying Pageant key #0
Trace:  Server refused public key
Trace:  Trying Pageant key #1
Trace:  Server refused public key
Trace:  Trying Pageant key #2
Trace:  CSftpControlSocket::ResetOperation(66)
Trace:  CControlSocket::ResetOperation(66)
Error:  Could not connect to server
Status: Waiting to retry...
Status: Connecting to 10.1.1.69...
Trace:  Going to execute /usr/bin/fzsftp
Response:   fzSftp started
Trace:  CSftpControlSocket::ConnectParseResponse(fzSftp started)
Trace:  CSftpControlSocket::SendNextCommand()
Trace:  CSftpControlSocket::ConnectSend()
Command:    open "[email protected]" 22
Trace:  Server version: SSH-2.0-OpenSSH_5.3
Trace:  Using SSH protocol version 2
Trace:  We claim version: SSH-2.0-PuTTY_Local:_Sep_14_2013_01:12:43
Trace:  Doing Diffie-Hellman group exchange
Trace:  Doing Diffie-Hellman key exchange with hash SHA-256
Trace:  CSftpControlSocket::ResetOperation(66)
Trace:  CControlSocket::ResetOperation(66)
Error:  Could not connect to server

當我通過終端 SSH 時沒有任何問題。

我在某處讀到正在運行:

ssh-add -k ~/.ssh/KEYNAME

可以解決這個問題(我不確定這是否是解決辦法,上週我嘗試了很多不同的事情),但似乎在我重新啟動機器後,它又開始發生了。因此,我很自然地嘗試再次運行該命令,但沒有骰子。

我對這個東西很陌生,但是查看日誌,它似乎正在嘗試使用所有金鑰進行身份驗證,儘管我告訴 SSH 使用IdentitiesOnly

我刪除了,~/.putty因為我之前已經看到過這個建議,但我仍然遇到相同的錯誤(在接受指紋後)。

如有任何幫助、想法或建議,我們將不勝感激。我在網上搜索了一下,沒有找到任何東西,所以如果這是一個重複,請告訴我。

謝謝

答案1

注意:FileZilla 嘗試使用 .ssh 目錄中的金鑰進行連線。

我也有同樣的麻煩。對 FileZilla 日誌進行一些分析後(可以透過在「編輯」>「首選項」>「偵錯」中設定偵錯等級 = 3 來啟用偵錯日誌),我注意到filezilla Trying Pageant key #每次嘗試向伺服器進行身份驗證失敗時都會列印行。

嘗試 5 次失敗後,它會中斷列印「身份驗證失敗次數過多」錯誤。

解決方案:將鑰匙移到其他地方。

FileZilla 使用 Pageant 機制並嘗試使用已儲存在 .ssh 目錄中的金鑰進行驗證。我在 .ssh 目錄中儲存了一些金鑰來連接到本機虛擬機器。我只是將所有金鑰移至 .ssh 中的子目錄中。我嘗試再次連接,然後 FileZilla 工作正常。

答案2

我有同樣的問題並找到了更好的 解決方案,而不是移開鑰匙。


使用env變數執行 filezilla SSH_AUTH_SOCK=null

SSH_AUTH_SOCK=null filezilla &

對於永久解決方案,請將.desktop文件Exec=行變更為env SSH_AUTH_SOCK=null filezilla

# copy filezilla.desktop to your home
sudo cp -t ~/.local/share/applications /usr/share/applications/filezilla.desktop
# change ownership
sudo chown $USER: ~/.local/share/applications/filezilla.desktop
# add env variable
sed -i  's/^\(Exec=\)\(filezilla\)/\1env SSH_AUTH_SOCK=null \2/' ~/.local/share/applications/filezilla.desktop

答案3

您可以透過以下方式在 Mac 上修復此問題:

setting the root password with "sudo passwd root" then
editing and saving the ssh config file with "nano /etc/ssh_config" and
changing the RSAAuthentication to "no" rather than yes.

如果您還有其他問題,請訪問此連結: https://serverfault.com/questions/36291/how-to-recover-from-too-many-authentication-failures-for-user-root

答案4

追蹤日誌有一行:

選美比賽正在進行中。索取鑰匙。

Pageant 有 10 個 SSH-2 金鑰

sshd_config(在伺服器上)有一個設置MaxAuthTries,其default6

因此,為了防止每個連線進行過多的身份驗證嘗試,我們需要降低 ssh-keys/identities

  1. 註解所有其他主機條目、identityFiles~/.ssh/config
  2. 嘗試將未使用的金鑰移至~/.ssh/*新的子目錄(例如: ~/.ssh/sftp-keys )
  3. 用於ssh-add -D刪除代理的所有身分。
  4. 新增您想要用於連線的身份ssh-add ~/ssh/sftp-keys/serverid_rsa

嘗試重新連線。

如果仍然不成功,請重新貼上新的追蹤日誌。

相關內容