我从ssh收到以下错误:
Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
我应该授予id_rsa文件什么权限?
我从ssh收到以下错误:
Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
我应该授予id_rsa文件什么权限?
当前回答
密钥上的0x00权限要求有一个例外。如果密钥由root用户拥有,而组由包含用户的组拥有,则该密钥可以是0440,并且该组中的任何用户都可以使用该密钥。
我相信这可以在集合0xx0中使用任何权限,但我还没有测试每个版本的每个组合。我已经在CentOS 6上尝试了0660和5.3p1-84,该组不是用户的主要组,而是次要组,并且工作正常。
这通常不会针对某人的个人密钥,而是针对用于自动化的密钥,在这种情况下,您不希望应用程序使用该密钥。
类似的规则适用于.ssh目录限制。
其他回答
在我的案例中,问题是空白太多。
ssh -i mykey.pem ubuntu@instace.eu-north-1.compute.amazonaws.com
but
ssh -i mykey.pem ubuntu@instace.eu-north-1.compute.amazonaws.com
工作正常。问题是空白被视为用户名的一部分。
我从另一台mac迁移后也遇到了同样的问题。它被我的钥匙阻止连接github。
我重置了如下权限,现在运行良好。
chmod 700 ~/.ssh # (drwx------)
cd ~/.ssh
chmod 644 *.pub # (-rw-r--r--)
chmod 600 id_rsa # (-rw-------)
密钥只需由您读写:
chmod 600 ~/.ssh/id_rsa
或者,密钥只能由您读取(这也会阻止您的写访问):
chmod 400 ~/.ssh/id_rsa
600在大多数情况下似乎更好,因为您不需要稍后更改文件权限来编辑它
手册页中的相关部分(man-ssh)
~/.ssh/id_rsa包含用于身份验证的私钥。这些文件包含敏感数据,用户应能阅读,但不能其他人可以访问(读/写/执行)。ssh只会忽略私有密钥文件(如果是)其他人可以访问。可以指定生成将用于加密敏感密钥的密钥时的密码短语此文件的一部分使用3DES。~/.ssh/identity.pub~/.ssh/id_dsa.pub~/.ssh/id_ecdsa.pub~/.ssh/id_rsa.pub包含用于身份验证的公钥。这些文件不敏感任何人都可以(但不需要)阅读。
正如人们所说的,在Windows中,我只是将.pem文件放在C:\Users\[user]\.ssh\中,这就解决了问题。尽管您可以在bash或powershell提示符下执行chmod和其他命令行选项,但这些选项都不起作用。我没有改变rsa或其他任何东西。然后,在运行连接时,必须将pem文件的路径放在.ssh文件夹中:
ssh -i "C:\Users\[user]\.ssh\ubuntukp01.pem" ubuntu@ec[ipaddress].us-west-2.compute.amazonaws.com
当我试图使用公钥登录远程ftp服务器时,也遇到了类似的问题。为了解决这个问题,我完成了以下过程:
首先找到公钥的位置,因为当您尝试登录到ftp时,将使用此公钥。或者,您可以创建一个密钥并将该密钥的权限设置为600。确保您位于正确的位置并执行以下命令:
chmod 600 id_rsa