Arc*_*ona 28 ubuntu ssh amazon-web-services
我有一个用于宠物项目的 AWS EC2 Ubuntu 实例。当我有一天尝试登录时,出现此错误:
~$ ssh -i"/home/kona/.ssh/aws_kona_id" kona@server.akona.me -p22
Enter passphrase for key '/home/kona/.ssh/aws_kona_id':
Received disconnect from [IP address] port 22:2: Too many authentication failures
Disconnected from [IP address] port 22
~$
Run Code Online (Sandbox Code Playgroud)
kona 是此服务器上启用的唯一帐户
我试过重新启动服务器,更改我的 IP 地址,然后等待。
编辑:
kona@arcticjieer:~$ ssh -o "IdentitiesOnly yes" -i"/home/kona/.ssh/aws_kona_id" -v kona@ec2-3-17-146-113.us-east-2.compute.amazonaws.com -p22
OpenSSH_8.1p1 Debian-1, OpenSSL 1.1.1d 10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ec2-3-17-146-113.us-east-2.compute.amazonaws.com [3.17.146.113] port 22.
debug1: Connection established.
debug1: identity file /home/kona/.ssh/aws_kona_id type -1
debug1: identity file /home/kona/.ssh/aws_kona_id-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.1p1 Debian-1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* compat 0x04000002
debug1: Authenticating to ec2-3-17-146-113.us-east-2.compute.amazonaws.com:22 as 'kona'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:D3sIum9dMyyHNjtnL7Pr4u5DhmP5aQ1jaZ8Adsdma9E
debug1: Host 'ec2-3-17-146-113.us-east-2.compute.amazonaws.com' is known and matches the ECDSA host key.
debug1: Found key in /home/kona/.ssh/known_hosts:41
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/kona/.ssh/aws_kona_id explicit
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/kona/.ssh/aws_kona_id
Enter passphrase for key '/home/kona/.ssh/aws_kona_id':
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
kona@ec2-3-17-146-113.us-east-2.compute.amazonaws.com: Permission denied (publickey).
kona@arcticjieer:~$
Run Code Online (Sandbox Code Playgroud)
MLu*_*MLu 55
此错误通常意味着您的ssh-agent.
说明:您的 ssh 客户端将尝试ssh-agent一一使用所有密钥,然后才能使用指定的密钥-i aws_kona_id。是的,这有点违反直觉。因为每次这样的尝试都算作一次身份验证失败,并且默认情况下 SSH 服务器只允许 5 次尝试,所以您会看到以下错误:Too many authentication failures。
您可以查看尝试使用的身份(密钥)ssh -v。
解决方案是告诉ssh只使用在命令行上指定的身份:
ssh -o "IdentitiesOnly yes" -i ~/.ssh/aws_kona_id -v kona@server.akona.me
Run Code Online (Sandbox Code Playgroud)
如果它没有帮助在此处发布该命令的输出。
Tim*_*Tim 29
我认为 MLu 的回答在这种情况下可能是正确的。验证这一点的方法是运行命令行 ssh 命令,指定服务器的正确密钥。
ssh -i "keyfile.pem" ec2-user@1.2.3.4
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,并且在“我已被锁定在我的服务器之外,求助!”的一般情况下,通常推荐的方法是将该卷作为数据卷安装到另一个实例。
重复直到您可以访问。如果您无法访问,则至少可以访问您的数据。
Gia*_*tta 27
默认情况下,SSH 会尝试所有可用的 SSH 密钥。它以“随机”顺序进行。指定该-i选项只是告诉 SSH 将该密钥文件添加到要尝试的密钥列表中。
它确实不是:
最终发生的情况(如果您使用许多密钥,则经常发生)是 SSH 尝试了几个不起作用的随机密钥,并且服务器停止接受来自您的客户端的身份验证尝试。
如果要告诉 SSH“仅使用此密钥”,则必须指定IdentitiesOnly yes选项:
ssh -o "IdentitiesOnly yes" -i"/home/kona/.ssh/aws_kona_id" kona@server.akona.me -p22
Run Code Online (Sandbox Code Playgroud)
IdentitiesOnly yes告诉 SSH 仅使用明确指定的密钥(在本例中仅使用使用 指定的密钥-i)。
这就是为什么当我为不同的主机使用自定义密钥时,我总是在.ssh/config. 这允许我使用一个简单的别名,更重要的是,指定IdentitiesOnly yes使用哪个键来避免这种错误:
Host kona.server
Hostname server.akona.me
IdentityFile ~/.ssh/aws_kona_id
IdentitiesOnly yes
Port 22
User kona
Run Code Online (Sandbox Code Playgroud)
有了上面的内容,您.ssh/config应该可以简单地登录到您的服务器:
$ ssh kona.server
Run Code Online (Sandbox Code Playgroud)
您刚刚添加的详细输出显示您获得Permission denied了~/.ssh/aws_kona_id.
这是一个完全不同的问题Too many authentication failures。
也许您aws_kona_id不是用户的正确密钥(这就是为什么它不断尝试来自 ssh-agent 的所有其他身份)或者您应该使用默认的 EC2 用户帐户,例如ec2-user或ubuntu或您拥有什么。
尝试这些帐户或尝试为kona用户找到正确的密钥。
| 归档时间: |
|
| 查看次数: |
13019 次 |
| 最近记录: |