我正在亚马逊EC2实例上设置Panda。
我昨晚设置了我的帐户和工具,使用SSH与我自己的个人实例交互没有问题,但现在我不被允许进入Panda的EC2实例。
从熊猫开始
我得到以下错误:
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
昨晚,为了进入我的个人实例,我已经将我的keypair chmod为600,并尝试将权限设置为0,甚至生成新的密钥字符串,但似乎什么都不起作用。
任何帮助都是极大的帮助!
嗯,似乎除非目录的权限设置为777,否则ec2-run-instances脚本无法找到我的密钥文件。
将您的私钥、公钥、known_hosts放在同一个目录下,尝试登录如下:
ssh -I(small i) "hi.pem" ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
同样的目录,
cd /用户/王子/桌面。
现在输入ls命令
你们应该看到
**pem * *。ppk known_hosts
注意:你必须尝试从相同的目录登录,否则你会得到一个权限拒绝错误,因为它不能从你的当前目录找到。pem文件。
如果您希望能够从任何目录进行SSH,可以向您的~/添加以下内容。ssh /配置文件…
Host your.server
HostName ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ec2/id_rsa-gsg-keypair
IdentitiesOnly yes
现在,不管目录在哪里,只要输入SSH your就可以SSH到服务器。服务器(或任何你放在“主机”后面的名称)。
解决方案是使它仅由文件的所有者可读,即八进制模式表示的最后两位数字应该为零(例如模式0400)。
OpenSSH在authfile.c中,在一个名为sshkey_perm_ok的函数中检查:
/*
* if a key owned by the user is accessed, then we check the
* permissions of the file. if the key owned by a different user,
* then we don't care.
*/
if ((st.st_uid == getuid()) && (st.st_mode & 077) != 0) {
error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
error("@ WARNING: UNPROTECTED PRIVATE KEY FILE! @");
error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
error("Permissions 0%3.3o for '%s' are too open.",
(u_int)st.st_mode & 0777, filename);
error("It is required that your private key files are NOT accessible by others.");
error("This private key will be ignored.");
return SSH_ERR_KEY_BAD_PERMISSIONS;
}
请参阅注释后的第一行:它对文件的模式执行“按位和”操作,选择最后两个八进制数字中的所有位(因为07是0b111的八进制数字,其中每个位分别代表r/w/x)。