EC2重启后无法通过ssh访问

EC2重启后无法通过ssh访问

我已经通过 ssh 连接了我的 ec2 实例,添加新的 EBS 卷后,通过“sudo shutdown -r now”重新启动机器,然后我尝试使用以下命令进行访问:

ssh -v  -i primary_key.pem [email protected]

重新调整如下:

debug1: Reading configuration data /Users/caveman/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to ec2-23-22-245-160.compute-1.amazonaws.com [23.22.245.160] port 22.
debug1: Connection established.
debug1: identity file primary_key.pem type -1
debug1: identity file primary_key.pem-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'ec2-23-22-245-160.compute-1.amazonaws.com' is known and matches the RSA host key.
debug1: Found key in /Users/caveman/.ssh/known_hosts:31
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: primary_key.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

哪里错了?我遗漏了什么要点吗?

答案1

线路

debug1: Authentications that can continue: publickey

表示您已禁用密码验证。您只能使用公钥进行验证(同时拥有相应的私钥)。

连续的两行

debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey

表示您正在使用可以正常读取的 RSA 私钥,但是其公钥无法通过服务器进行验证。

可以尝试以下选项:

  • 仔细检查您是否使用了正确的密钥。

  • 仔细检查用户名。也许您在创建帐户时输入了错误,或者您在复制密钥时是否使用了您自己的用户名进行连接(ssh-copy-id)。

  • 如果您可以通过其他方式访问服务器,请~ubuntu/.ssh递归检查完整目录的权限(和所有权!)以确保足够严格(如果过于宽松,OpenSSH 将拒绝访问)。

    • ~ubuntu/.ssh/目录应归用户所有,且模式为 0700(drwx------
    • ~ubuntu/.ssh/authorized_keys文件应归用户所有,且模式为 0600(-rw-------
  • 如果您没有PasswordAuthentication在 SSH 守护程序中禁用,这可能表示密码已重置为空或用户帐户已被禁用 ( ) 或已过期。尝试使用其他用户(可能是常规用户帐户)usermod -L登录。root

  • 如果您确实PasswordAuthentication在 SSH 守护程序的配置文件中禁用了此功能,但没有立即重新启动它,则更改可能仅在重新启动后才会生效。请参阅下面的选项以了解如何修复此问题。

  • 您是否可以使用 EC2 中的控制面板直接访问文本控制台?我不熟悉 Amazon AWS,但我认为您应该有此选项。然后您应该能够使用控制台登录以重置密码并通过 SSH 获得访问权限。

  • 尝试关闭您的 EC2 实例并将存储设备连接到另一个实例。挂载它并进行手动密码恢复。将其重新连接到原始实例,应该就可以修复了。

  • 再次获得访问权限后,请检查您的服务器是否未受到攻击。仅在重新启动后触发的配置更改可能表明服务器已受到攻击。我已经在多台服务器上看到这种情况。

相关内容