Macos 在Mac OSx上通过SSH连接到EC2时出现权限错误
我是EC2的新手。我从此网站创建了我的安全凭据: 它工作得很好,我重新启动了,现在当我尝试连接时,我得到了一个登录/密码提示。(我从未设置过。)几次尝试后,我出现以下错误: 权限被拒绝(公钥、带麦克风的gssapi)Macos 在Mac OSx上通过SSH连接到EC2时出现权限错误,macos,ssh,amazon-ec2,Macos,Ssh,Amazon Ec2,我是EC2的新手。我从此网站创建了我的安全凭据: 它工作得很好,我重新启动了,现在当我尝试连接时,我得到了一个登录/密码提示。(我从未设置过。)几次尝试后,我出现以下错误: 权限被拒绝(公钥、带麦克风的gssapi) 我做错了什么?我可以想到两种可能性,尽管它们都在您引用的链接中提到: 您没有在用于登录服务器的SSH命令中指定正确的SSH密钥对文件或用户名: ssh-i[密钥对文件的完整路径]根@[EC2实例主机名或IP地址] 您对密钥对文件没有正确的权限;你应该使用 chmod 600[密钥
我做错了什么?我可以想到两种可能性,尽管它们都在您引用的链接中提到:
debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-keypair
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
您是否从包含ec2密钥对文件的目录运行ssh命令?如果是这样,请尝试指定-i./ec2密钥对以消除路径问题。还要检查“ls-l[ec2密钥对的完整路径]”文件,并确保权限为600(显示为rw-----)。如果这些都不起作用,我会怀疑密钥对文件的内容,所以请尝试使用链接中的步骤重新创建它。我能够连接的关键是使用“ec2用户”用户而不是root用户。即:
ssh -i [full path to keypair file] ec2-user@[EC2 instance hostname or IP address]
您确定使用了正确的实例吗?我遇到了这个问题,并意识到我尝试的ubuntu实例中有4个没有安装SSH服务器 有关优秀服务器的列表,请参见“获取图像”部分。听起来你可能在用别的东西。。。这些图片上的默认用户名是ubuntu
如果您有一个在PC上工作的PPK文件,请使用puttygen.exe将其导出为OpenSSH文件,并在Mac(任何Unix机器)上使用 我也犯了同样的错误-- 当我在Windows上使用PPK文件时,我按照上面所述的步骤进行操作,结果是宾果
$ssh-i ec2 openssh密钥root@ec2-实例ip在我的例子中是因为我的主目录的权限是775,SSH对此不满意。它应在执行以下操作后工作:
server$ chmod go-w ~/
server$ chmod 700 ~/.ssh
server$ chmod 600 ~/.ssh/authorized_keys
今天下午我也有类似的经历。我在EC2上设置django,突然间我无法再使用SSH连接到这个盒子中。很高兴我仍然有一个活动连接,所以我修改了/etc/ssh/sshd\u config
来设置:
PasswordAuthentication yes
并为ec2用户设置密码
,然后输入密码即可登录
然而,在谷歌搜索之后,我发现了以下线索:。事实证明,在安装django的过程中,我更改了主目录的权限,SSH对此非常严格。因此,必须正确设置文件权限。我可以使用ec2用户登录
ssh-i[密钥对文件的完整路径]ec2用户@[ec2实例主机名或IP地址]标记mecca831的答案: ssh-v-i-key.pem ec2-user@11.11.11.11 [ec2-user@ip-11.11.11.11~]$sudo passwd ec2用户 新密码 新密码 [ec2-user@ip-11.11.11.11~]$sudo vi/etc/ssh/sshd_config 按如下方式修改该文件:
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
# EC2 uses keys for remote access
#PasswordAuthentication no
ssh ec2-user@11.11.11.11
拯救
[ec2-user@ip-11.11.11.11~]$sudo服务sshd站
[ec2-user@ip-11.11.11.11~]$sudo服务sshd启动
您应该能够按如下方式退出并使用ssh:
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
# EC2 uses keys for remote access
#PasswordAuthentication no
ssh ec2-user@11.11.11.11
并提示输入密码,不再需要密钥。以上所有方法都对我没有帮助,但与用户互动似乎是有希望的。对于我的配置,使用“ubuntu”是正确的
ssh-i[keypair file的完整路径]ubuntu@[EC2实例主机名或IP地址]我在使用用于Eclipse的AWS工具包时遇到了相同的问题。我创建了Getting Started实例OK并打开了一个shell。但是,用户被设置为ec2用户。我用开壳作为。。。命令并将用户设置为root用户。然后它成功了。经过大约半小时的搜索和调试,我终于找到了答案。我的情况是,我对两个不同的ec2实例使用同一个pem文件,它只对其中一个有效,而对另一个无效 我使用的第一个实例是标准的aws linux ami amzn-ami-hvm-2014.03.2.x86_64-ebs。我只是用
ssh -i mypemfile.pem ec2-user@myec2ipaddress
它成功了
然后,我启动了fedora实例fedora-x86_64-19-20140407-sda,并尝试了相同的命令,但始终得到:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
在将我的用户名从ec2用户更改为fedora后,它工作了
ssh -i mypemfile.pem fedora@myec2address
我建议不要像其他一些答案所建议的那样设置密码。使用密钥文件不仅更安全(没有人能猜到您的密码),而且更方便(一旦您设置了配置文件)。下面是一个基本的
~/.ssh/config
:
Host my-ec2-server
HostName 11.11.11.11
User ec2-user
IdentityFile /path/to/generated-key.pem
现在您只需键入ssh my-ec2-server
就可以了!正如其他答案中提到的,当您的连接不工作时,使用-v可以获取额外信息。+1
我注意到,对于一些AMI,比如AmazonLinux,ec2-user@xxx.XX.XX.XXX会有用的。但是对于ubuntu图像,我不得不使用ubuntu@来代替。.pem从来都不是问题,只是用户名问题。我也遇到过这个问题。我发现发生了这种情况,因为我忘了在主机名之前添加用户名: 像这样:
ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com
我添加了用户名:
ssh -i test.pem ec2-user@ec2-32-122-42-91.us-west-2.compute.amazonaws.com
它起作用了 如果问题是一致的,并且即使在将文件权限更改为400或600之后,问题也会连续发生10-15次,那么ec2实例上肯定出了问题,因此要确保: