Jos*_*ott 25 macos ssh amazon-ec2
我是EC2的新手.我从这个站点创建了我的安全凭证:
http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2
它工作得很好,我重新启动,现在当我尝试连接时,我得到一个登录/密码提示.(我从未设置过.)经过多次尝试后,我收到此错误:
权限被拒绝(publickey,gssapi-with-mic).
我究竟做错了什么?
gar*_*les 56
我能想到的两种可能性,虽然它们都在你引用的链接中提到:
您没有在用于登录服务器的ssh命令中指定正确的SSH密钥对文件或用户名:
ssh -i [密钥对文件的完整路径] root @ [EC2实例主机名或IP地址]
您没有对密钥对文件的正确权限; 你应该使用
chmod 600 [keypair文件]
确保只有您可以读取或写入文件.
尝试在ssh中使用-v选项以获取有关它失败的详细信息,如果您需要更多帮助,请在此处回复.
[更新]:好的,所以如果一切设置正确,这应该是你应该看到的:
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).
Run Code Online (Sandbox Code Playgroud)
您是否从包含ec2-keypair文件的目录运行ssh命令?如果是这样,请尝试指定-i ./ec2-keypair以消除路径问题.同时检查"ls -l [ec2-keypair的完整路径]"文件并确保权限为600(显示为rw -------).如果这些都不起作用,我会怀疑密钥对文件的内容,因此请尝试使用链接中的步骤重新创建它.
sla*_*ker 15
我能够连接的关键是使用"ec2-user"用户而不是root用户.即:
ssh -i [full path to keypair file] ec2-user@[EC2 instance hostname or IP address]
Run Code Online (Sandbox Code Playgroud)
小智 5
在我的情况下,这是因为我的主目录的权限是775,而SSH对此并不满意.它应该在执行后工作:
server$ chmod go-w ~/
server$ chmod 700 ~/.ssh
server$ chmod 600 ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
今天下午我的经历非常相似.我在EC2上设置django,突然间我再也无法SSH进入盒子了.很高兴我仍然有一个活动的连接,所以我修改/etc/ssh/sshd_config为设置:
PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)
并设置密码ec2-user,然后我可以输入密码登录.
然而,经过一些谷歌搜索后,我找到了这个帖子:http://ubuntuforums.org/showthread.php?t = 577279.事实证明,在我设置django期间,我更改了我的主目录的权限,而SSH对此非常严格.因此必须正确设置文件权限.
+1
我注意到对于 Amazon Linux 等一些 AMI,ec2-user@xxx.XX.XX.XXX 会起作用。但是对于 ubuntu 图像,我不得不改用 ubuntu@。.pem 从来没有问题,只是用户名有问题。
小智 5
我也遇到过这个问题。我发现这是因为我忘记在主机名之前添加用户名:像这样:
ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
我添加用户名:
ssh -i test.pem ec2-user@ec2-32-122-42-91.us-west-2.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
有用!