Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS-已断开连接:没有支持的身份验证方法可用(服务器已发送:公钥)_Amazon Web Services_Ssh_Putty - Fatal编程技术网

Amazon web services AWS-已断开连接:没有支持的身份验证方法可用(服务器已发送:公钥)

Amazon web services AWS-已断开连接:没有支持的身份验证方法可用(服务器已发送:公钥),amazon-web-services,ssh,putty,Amazon Web Services,Ssh,Putty,Putty和Filezilla的AWS服务器的SSH都中断了。我正在努力使这篇文章成为一个全面的故障排除列表,所以如果您共享指向其他堆栈溢出页面的链接,我会将它们编辑到问题中 Disconnected : No supported authentication methods available (server sent :publickey) 这个错误在我差不多一年前建立连接时就很常见了。如果您是第一次设置AWS SSH,那么这些解决了最常见的问题: 错误的用户名: 不正确的.ppk文件

Putty和Filezilla的AWS服务器的SSH都中断了。我正在努力使这篇文章成为一个全面的故障排除列表,所以如果您共享指向其他堆栈溢出页面的链接,我会将它们编辑到问题中

Disconnected : No supported authentication methods available (server sent :publickey)

这个错误在我差不多一年前建立连接时就很常见了。如果您是第一次设置AWS SSH,那么这些解决了最常见的问题:

  • 错误的用户名:
  • 不正确的.ppk文件:
然而,我能想到的唯一会影响以前工作的系统的事情是:

  • 错误的IP:重新启动AWS实例(或创建映像)不能保证保持相同的IP地址。这显然必须在腻子中更新
还有什么其他的可能性

这个问题的解决方案(根据下面接受的帖子)是,对于AWS EC2,所有3个都需要有适当的权限(777任何一个都可以)。下面是一个有效的例子:

/var/log/secure将告诉您哪一个抛出错误,如果您完全被锁定,请参阅本视频教程以获取访问权限:

如果您有一个正确的Linux用户,但尚未创建文件.ssh/authorized_-keys并按所示保存公钥,则您还将收到“断开连接:没有可用的受支持的身份验证方法(服务器已发送:公钥)”。在尝试通过Putty连接到SiteGround服务器时,我遇到了相同的问题。都很彻底,对某些人有用,但对我没用

他们建议运行在后台运行的pageant.exe。你向Pageant注册了你的钥匙,当Putty尝试连接时,它应该让Putty知道钥匙

在中,我找到了直接在Putty会话定义中指定密钥的建议:Putty配置>连接>SSH>身份验证>私钥文件,然后浏览到.ppk格式的密钥文件


在不运行Pageant的情况下这样做解决了我的问题。

PuTTY本机不支持Amazon EC2生成的私钥格式(.pem)。PuTTY有一个名为PuTTYgen的工具,可以将关键帧转换为所需的PuTTY格式(.ppk)。在尝试使用PuTTY连接到实例之前,必须将私钥转换为此格式(.ppk)

此处描述了如何执行此操作的步骤:


这解决了问题。

基于多个实例,如果密钥文件和用户名正确,则在更改与根用户关联的某些目录权限时,似乎会发生这种情况。

还有另一个原因会影响以前工作的系统。我重新创建了我的实例(使用AWS OpsWorks)以使用Amazon Linux而不是Ubuntu,并在这样做后收到了此错误。改用“ec2用户”而不是“ubuntu”作为用户名为我解决了这个问题。

今天我也遇到了类似的问题。我也找了很多,没人帮忙。我刚刚做了两个改变,它也能正常工作

  • 我访问了描述的地方,请验证是否存在允许从您的计算机到端口22(SSH)的通信的规则,如果不存在,请创建该规则并编辑“安全组”并将“SSH”添加到我的IP。这会有帮助的
  • 在我的情况下,在putty配置文件中,我必须再次使用.ppk文件进行授权。我不知道为什么它又问了一遍,没有做任何改变

  • 希望它能对您有所帮助。

    对于我来说,这个错误是在我通过更改用户的主目录后立即出现的

    sudo usermod -d var/www/html username
    

    这种情况也可能发生,因为对~/.ssh中的授权密钥文件缺乏适当的权限。请确保此文件的权限为0600,~/.ssh的权限为700。

    在大多数情况下,使用错误的用户名登录时,不会出现身份验证方法错误。但如果你仍然在为连接问题而挣扎,并且你已经尝试了上面所有的选择,我会发现一些其他的东西

    我创建了两个Linux虚拟机并试图重现这种连接问题,我发现一件事是,当AWS要求您命名密钥对时,不要使用密钥对名称中的空格(“”)和点(“”),即使AWS实际上允许您这样做

    例如,当我将密钥对命名为“AWS.FREE.LINUX”时,连接总是被拒绝。当我命名为“AWS_FREE_LINUX”时,一切都很好


    希望这会有点帮助。

    在ssh会话期间,我的连接断开了,因为我无法对SRV进行ssh,我启动了一个新实例,并且我能够对新实例进行ssh(使用相同的密钥)


    我将旧卷装载到新机器上,并检查了.ssh/authorized_密钥,没有发现任何权限或内容问题。

    我也有同样的问题,我使用了公共DNS而不是公共IP。现在问题解决了。

    我也有同样的问题,是偶然的错误。我将在这里分享,以防有人犯同样的错误

    基本步骤,如其他描述

  • 下载putty和puttygen或putty包并安装它
  • 从AWS EC2实例获取.pem文件
  • 使用puttygen转换.pem文件,这样您就有了私钥——这里发生了错误。我从PuttyGen中选择了“Conversions”选项卡,并加载我的.pem文件。加载pem文件后,此处不点击“生成”,而是直接点击“保存私钥”。这是你需要的钥匙。如果单击Generate,您将拥有一对完全不同的密钥
  • 在腻子中,使用ec2-user@your.public.dns.that.you.get.from.aws.ec2.instance,并在SSH/Auth处加载私钥

  • 祝你好运

    在我的例子中,问题是ppk文件被放置在%USERPROFILE%\Downloads而不是%USERPROFILE%.ssh文件夹中


    移动文件后,问题消失了。

    综合答案如下:

    您的问题可能与不正确登录有关,这取决于AMI。 使用
    sudo usermod -d var/www/html username
    
    ubuntu- ubuntu AMIs
    ec2-user- Amazon Linux AMI
    centos- Centos AMI
    debian or root- Debian AMIs6
    ec2-user or fedora- Fedora