我的mac出了问题,我无法在磁盘上保存任何类型的文件 . 我不得不重新启动OSX lion并重置文件和acls的权限 .
但是现在当我想提交存储库时,我从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文件提供哪些权限级别?
15 回答
我在玩Ansible时遇到了这个错误 . 我已将私钥的权限更改为 600 以解决此问题 . 它奏效了!
什么对我有用
在Windows 10上,cygwin的chmod和chgrp对我来说还不够 . 我必须右键单击文件 - >属性 - >安全性(选项卡)并删除除活动用户以外的所有用户和组 .
这里有消息 . 如果您的私钥太开放,操作Syatems足够聪明,可以拒绝远程连接 . 它理解id_rsa的权限是敞开的风险(读取,任何人都可以编辑) .
{一个人可能先改变你的锁,然后用他已经拥有的钥匙打开它 . }
PS:
在处理多个服务器(非 生产环境 )时,我们大多数人都觉得需要使用ssh连接远程服务器 . 一个好主意是使用一堆应用程序级代码(可能是使用jsch的java)来在服务器之间创建ssh信任 . 这种方式连接将是无密码的 . Incase,perl安装 - 也可以使用net ssh模块 .
密钥只能由您读取:
600似乎也很好(事实上在大多数情况下更好,因为你不需要更改文件权限来编辑它) .
联机帮助页的相关部分(
man ssh
)把〜/ .ssh / identity.pub
把〜/ .ssh / id_dsa.pub
的〜/ .ssh / id_ecdsa.pub
的〜/ .ssh / id_rsa.pub
包含用于身份验证的公钥 . 这些文件不敏感
任何人都可以(但不一定)可读 .
0600是我的定位(并且它正在工作)
对我来说(使用Linux的Ubuntu子系统)错误消息更改为:
在使用chmod 400之后 . 事实证明,使用root作为默认用户是原因 .
使用cmd更改此设置:
我在EC2上使用VPC并收到相同的错误消息 . 我注意到我正在使用公共DNS . 我改为私有DNS和挥发!!有效...
我在Windows 10中遇到了错误,因此我将权限设置为以下内容并且有效 .
详细信息,删除其他用户/组,直到它只有“SYSTEM”和“Administrators” . 然后使用“读取”权限将您的Windows登录添加到其中 .
请注意
id_rsa
文件位于c:\users\<username>
文件夹下 .AFAIK的 Value 观是:
密钥文件所在的隐藏目录“.ssh”为700
600为密钥文件“id_rsa”
密钥的“0x00”权限要求有一个例外 . 如果密钥由root拥有并且由拥有用户的组拥有,则它可以是“0440”,并且该组中的任何用户都可以使用该密钥 .
我相信这将适用于集合“0xx0”中的任何权限,但我没有测试每个版本的每个组合 . 我在CentOS 6上尝试过0660和5.3p1-84,并且该组不是用户的主要组而是辅助组,并且它工作正常 .
对于某人的个人密钥,通常不会这样做,但对于用于自动化的密钥,在您不希望应用程序能够弄乱密钥的情况下 .
类似的规则适用于.ssh目录限制 .
对于Win10需要将你的密钥移动到用户的家庭目录为Linuxlike操作系统你需要chmod到700喜欢或600等 .
在Windows 8.1中使用Cygwin,需要运行命令:
然后可以应用此处发布的解决方案,400或600即可 .
参考:http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8
在Windows 8.1上运行的与语言环境无关的解决方案是:
GID 545是一个始终引用'Users'组的special ID,即使您的语言环境对用户使用不同的单词也是如此 .
提供400权限,执行以下命令