所以我终于在办公室里换成了 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
尝试重新连接。
如果仍然不成功,请重新粘贴新的跟踪日志。