我正在亚马逊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脚本无法找到我的密钥文件。


当前回答

我也有同样的问题,但我通过将我的密钥文件权限更改为600来解决它。

Sudo chmod 600 /path/to/my/key.pem

其他回答

为了昨晚进入我的个人实例,我把我的密码修改为600,

这就是它应该有的样子。

从EC2文档中,我们有“如果您正在使用OpenSSH(或任何合理的SSH客户端),那么您可能需要设置该文件的权限,以便它只能由您读取。”你链接到亚马逊文档的Panda文档链接,但实际上并没有传达它有多重要。

其思想是密钥对文件就像密码一样,需要受到保护。因此,您正在使用的ssh客户端要求这些文件是安全的,并且只有您的帐户可以读取它们。

将目录设置为700确实应该足够了,但是只要文件是600,777就没有问题。

您遇到的任何问题都是客户端问题,因此请确保在任何后续问题中包含本地操作系统信息!

请确保包含私钥文件的目录设置为700

chmod 700 ~/.ec2

给无意中发现这一点的人一个提示:

如果您正在尝试使用已与您共享的密钥进行SSH,例如:

SSH -i /path/to/keyfile。pem user@some-host

密钥文件的地方。Pem是与您共享的私钥/公钥,您使用它来连接,请确保将其保存到~/。Ssh /和chmod 777。

试图使用文件时,它被保存在我的机器上的其他地方给出了OP的错误。不确定是否有直接关系。

为了解决这个问题,

您需要将权限重置回默认值: Sudo chmod 600 ~/.ssh/id_rsa . sh Sudo chmod 600 ~/.ssh/id_rsa.pub 如果你得到另一个错误: 您确定要继续连接(是/否)?是的 日志含义添加主机到已知主机列表(/home/geek/.ssh/known_hosts)失败。 这意味着该文件的权限设置也不正确,并且可以通过以下方式进行调整: Sudo chmod 644 ~/.ssh/known_hosts . sh

最后,您可能还需要调整目录权限: Sudo chmod 755 ~/.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)。