我从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文件什么权限?


当前回答

0600是我的设定值(并且正在工作)

其他回答

密钥只需由您读写:

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用户。转到文件属性-->安全-->高级

禁用继承属性将继承的权限转换为显式权限。删除除管理员之外的所有权限条目。

对于Windows 10,这是我发现的适合我的功能:

将密钥移动到Linux文件系统:mv~/.ssh/home/{用户名}设置该密钥的权限:chmod 700/home/{用户名}/.ssh/id_rsa创建指向密钥的符号链接:ln-s/home/{用户名}/.ssh~/.ssh

如果您将主目录(~)设置为存储在Windows而不是Linux中(在/mnt/vs/home/下),就会发生这种情况。

我在EC2上使用VPC,并收到相同的错误消息。我注意到我在使用公共DNS。我把它改成了专用DNS和vola!!它奏效了。。。

在Windows 8.1中使用Cygwin时,需要运行以下命令:

chgrp Users ~/.ssh/id_rsa

然后可以应用此处发布的解决方案,400或600即可。

chmod 600 ~/.ssh/id_rsa

此处引用