Kas*_*ail 355 ssh amazon-ec2 amazon-web-services
我想使用我的Amazon ec2实例,但遇到以下错误:
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我创建了密钥对并下载了.pem文件.
鉴于:
chmod 600 pem file.
Run Code Online (Sandbox Code Playgroud)
然后,这个命令
ssh -i /home/kashif/serverkey.pem ubuntu@ec2-54-227-242-179.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
但有这个错误:
Permission denied (publickey)
Run Code Online (Sandbox Code Playgroud)
另外,如何连接filezilla上传/下载文件?
Thi*_* D. 589
此错误消息表示您无法进行身份验证.
这些是导致这种情况的常见原因:
ubuntu是一个基于AWS分布Ubuntu的用户名,但在另一些它的ec2-user(或admin在某些Debians,根据波格丹Kulbida的答案)(也可以是root,fedora,见下文)请注意,1.如果您/home/<username>/.ssh/authorized_keys在EC2实例上搞乱了文件,也会发生这种情况.
关于2.,您应该使用的用户名信息通常缺少AMI图像描述.但您可以在AWS EC2文档中找到一些内容,请点击4.:http:
//docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
使用ssh命令连接到实例.您将指定私钥(.pem)文件和user_name @ public_dns_name.对于Amazon Linux,用户名为ec2-user.对于RHEL5,用户名是root或ec2-user.对于Ubuntu,用户名是ubuntu.对于Fedora,用户名是fedora或ec2-user.对于SUSE Linux,用户名为root.否则,如果ec2-user和root不起作用,请咨询您的AMI提供商.
最后,请注意,身份验证失败还有许多其他原因.如果您需要将-v选项添加到SSH命令并读取输出,SSH通常非常明确地指出了什么问题,正如此问题的许多其他答案中所解释的那样.
Mat*_*ani 48
在这种情况下,问题是由丢失密钥对引起的.对这个:
您可以按照以下步骤操作:
通常,请记住您必须允许EC2实例接受入站SSH流量.
为此,您必须为EC2实例的安全组创建特定规则.您可以按照以下步骤操作.
希望这能帮助有人帮助我.
Wel*_*ndo 26
我解决只是把这个问题sudo之前,
sudo ssh -i mykey.pem myec2.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
但正确的解决方案是首先更改所有权,然后像Janus Troelsen所说的那样以普通用户身份进行连接.在我的情况下,它将是:
chown wellington:wellington key.pem
Run Code Online (Sandbox Code Playgroud)
Abh*_*pta 23
尝试使用
sudo ssh -i mykey.pem ubuntu@<ec2_ip_public_dns>
Run Code Online (Sandbox Code Playgroud)
要么
sudo ssh -i mykey.pem ec2-user@<ec2_ip_public_dns>
Run Code Online (Sandbox Code Playgroud)
对于ubuntu 12.04 lts微实例,我必须将用户名设置为选项
ssh -i pemfile.pem -l ubuntu dns
Run Code Online (Sandbox Code Playgroud)
小智 7
您需要执行以下步骤:
cd <path to your .pem file>chmod 400 <filename>.pem ssh -i <filename>.pem ubuntu@<ipaddress.com> 如果ubuntu用户不工作,请尝试使用ec2-user.
我显然因为相同的许可拒绝错误而挣扎
key_parse_private2: missing begin marker
Run Code Online (Sandbox Code Playgroud)
在我的情况下,原因是当前用户的ssh配置文件(〜/ .ssh/config).
使用以下内容:
ssh -i ~/myKey.pem ec2-user@<IP address> -v 'exit'
Run Code Online (Sandbox Code Playgroud)
初始输出显示:
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
Run Code Online (Sandbox Code Playgroud)
...这里有很多调试线...
debug1: Next authentication method: publickey
debug1: Trying private key: /home/ec2-user/somekey.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Run Code Online (Sandbox Code Playgroud)
上面的第三行是确定问题的实际情况; 但是,我在调试消息中查找了从底部开始的四行(上图)并被误导了.密钥没有问题,但我测试了它并比较了其他配置.
我的用户ssh配置文件通过非预期的全局设置重置主机,如下所示.第一个主机行不应该是评论.
$ cat config
StrictHostKeyChecking=no
#Host myAlias
user ec2-user
Hostname bitbucket.org
# IdentityFile ~/.ssh/somekey
# IdentitiesOnly yes
Host my2ndAlias
user myOtherUser
Hostname bitbucket.org
IdentityFile ~/.ssh/my2ndKey
IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)
我希望其他人觉得这很有帮助.
| 归档时间: |
|
| 查看次数: |
557737 次 |
| 最近记录: |