所以我終於把我的辦公室搬到 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
,其default
值6
因此,為了防止每個連線進行過多的身份驗證嘗試,我們需要降低 ssh-keys/identities
- 註解所有其他主機條目、identityFiles
~/.ssh/config
- 嘗試將未使用的金鑰移至
~/.ssh/*
新的子目錄(例如: ~/.ssh/sftp-keys ) - 用於
ssh-add -D
刪除代理的所有身分。 - 新增您想要用於連線的身份
ssh-add ~/ssh/sftp-keys/serverid_rsa
嘗試重新連線。
如果仍然不成功,請重新貼上新的追蹤日誌。