我的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文件提供哪些权限级别?
答案 0 :(得分:2811)
密钥只能由您阅读:
chmod 400 ~/.ssh/id_rsa
600 似乎也很好(事实上在大多数情况下更好,因为你不需要更改文件权限来编辑它)。
联机帮助页(man ssh
)
~/.ssh/id_rsa Contains the private key for authentication. These files contain sensitive data and should be readable by the user but not accessible by others (read/write/execute). ssh will simply ignore a private key file if it is accessible by others. It is possible to specify a passphrase when generating the key which will be used to encrypt the sensitive part of this file using 3DES. ~/.ssh/identity.pub ~/.ssh/id_dsa.pub ~/.ssh/id_ecdsa.pub ~/.ssh/id_rsa.pub Contains the public key for authentication. These files are not sensitive and can (but need not) be readable by anyone.
答案 1 :(得分:87)
在Windows 8.1中使用Cygwin,需要运行命令:
chgrp用户〜/ .ssh / id_rsa
然后可以应用此处发布的解决方案,400或600即可。
chmod 600~ / .ssh / id_rsa
参考:http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8
答案 2 :(得分:32)
适用于Windows 8.1的与语言环境无关的解决方案是:
chgrp 545 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
GID 545是一个special ID,总是引用“用户”群组,即使您的语言区域为用户使用了不同的词语。
答案 3 :(得分:28)
0600是我的设定(并且它正在运作)
答案 4 :(得分:22)
AFAIK的值是:
700表示密钥文件所在的隐藏目录“.ssh”
600为密钥文件“id_rsa”
答案 5 :(得分:17)
Windows 10 SSH进入AWS上的Ubuntu EC2“权限太开放”错误
我遇到了这个问题,试图使用AWS的.pem文件将其SSH到Ubuntu EC2实例。
在Windows中,当我将此密钥放入.ssh文件夹下创建的文件夹中时,此方法起作用了
C:\Users\USERNAME\.ssh\private_key
要在Windows 10中更改权限设置:
文件设置>安全>高级
禁用继承
将继承的权限转换为显式权限
删除除管理员以外的所有权限条目
然后可以安全连接。
答案 6 :(得分:13)
密钥的“0x00”权限要求有一个例外。如果密钥由root拥有并由拥有用户的组拥有,则它可以是“0440”,该组中的任何用户都可以使用该密钥。
我相信这将适用于“0xx0”集中的任何权限,但我没有测试每个版本的每个组合。我在CentOS 6上尝试过0660和5.3p1-84,该组不是用户的主要组而是辅助组,并且工作正常。
对于某人的个人密钥,通常不会这样做,但对于用于自动化的密钥,在您不希望应用程序能够弄乱密钥的情况下。
类似的规则适用于.ssh目录限制。
答案 7 :(得分:10)
答案 8 :(得分:4)
在Windows 10上,cygwin的chmod和chgrp对我来说还不够。我必须右键单击文件->属性->安全性(选项卡),然后删除除活动用户外的所有用户和组。
答案 9 :(得分:4)
我在Windows 10中出现错误,因此我将权限设置为以下内容,并且可以正常工作。
详细信息,删除其他用户/组,直到只有“ SYSTEM”和“ Administrators”为止。然后将Windows登录名(仅具有“读取”权限)添加到其中。
请注意,id_rsa
文件位于c:\users\<username>
文件夹下。
答案 10 :(得分:4)
什么对我有用
chgrp用户文件夹
chmod 600 FOLDER
答案 11 :(得分:3)
答案 12 :(得分:3)
正如人们所说,在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
答案 13 :(得分:2)
键入此命令可解决您的问题。
chmod 600 ~/.ssh/id_rsa
答案 14 :(得分:2)
对于我(使用Linux的Ubuntu子系统),错误消息更改为:
Permissions 0555 for 'key.pem' are too open
使用chmod 400之后。 事实证明,使用root作为默认用户是原因。
使用cmd进行更改:
ubuntu config --default-user your_username
答案 15 :(得分:2)
此处有交集消息。 如果您的私钥太开放,操作Syatems足够聪明,可以拒绝远程连接。它理解id_rsa的权限是敞开的风险(阅读,任何人都可以编辑)。
{有人可能先改变你的锁,然后用他已经拥有的钥匙打开它。 }
cd ~/.ssh
chmod 400 id_rsa
PS:
在处理多个服务器(非生产)时,我们大多数人都觉得需要使用ssh连接远程服务器。一个好主意是使用一堆应用程序级代码(可能是使用jsch的java)来在服务器之间创建ssh信任。这种方式连接将是无密码的。 Incase,perl已安装 - 也可以使用net ssh模块。
答案 16 :(得分:2)
这是对我有用的(在Mac上)
sudo chmod 600 path_to_your_key.pem
然后:
ssh -i path_to_your_key user@server_ip
希望有帮助
答案 17 :(得分:1)
700 folder
644 id_rsa.pub
这对我有用。
答案 18 :(得分:1)
我将所有自己的证书和密钥保存在一个目录中,这适用于 PuTTY 之类的工具,但我从 scp 命令收到了“太开放”的错误消息。我发现 Windows 已经维护了一个 C:\users\ACCOUNTNAME\.ssh 文件夹,该文件夹具有用于存储 SSH 密钥的正确访问权限。只要您保留内容备份(Windows 有时会在更新期间将其删除),或者在您的用户文件夹中为 ssh 密钥创建您自己的文件夹,这将正常工作,因为只有您和管理员才能访问该父文件夹。< /p>
在更改 Windows 文件夹的访问权限时要非常小心。我这样做了,Windows 每天都会扫描、读取和写入我 C: 驱动器上的所有文件,这个过程会导致计算机慢几分钟。
答案 19 :(得分:1)
对于Windows 10,这是我发现适用于我的东西:
undefined
mv ~/.ssh /home/{username}
chmod 700 /home/{username}/.ssh/id_rsa
如果您将主目录(ln -s /home/{username}/.ssh ~/.ssh
)设置为存储在Windows而不是Linux中(在~
和/mnt/
下),则会发生这种情况。
答案 20 :(得分:0)
在我的情况下,我尝试从Windows 10中的Ubuntu应用程序进行连接,并收到上述错误。
可以通过在实际命令之前在Ubuntu控制台中运行sudo su
来解决此问题,而无需进行任何权限更改
答案 21 :(得分:0)
I have got the similar issue when i was trying to login to remote ftp server using public keys..
To solve this issue initially i have done the following process
First find the location of the public keys because when you try to login to ftp using this public key. first we need to create a key and we set to set that keys permissions to 600. Make sure you are in correct location. step1: go the correct location step2: After you are in right location command: chmod 600 id_rsa
This has solved my issue.
答案 22 :(得分:0)
从另一台Mac迁移后,我遇到了同样的问题。 而且它被我的钥匙阻止连接github。
我按如下所示重置了权限,现在效果很好。
chmod 700 ~/.ssh // (drwx------)
cd ~/.ssh
chmod 644 *.pub // (-rw-r--r--)
chmod 600 id_rsa // (-rw-------)
答案 23 :(得分:0)
我尝试对我的私钥进行600级的许可,并且对我有用。 chmod 600私钥 [dev] $ ssh -i privateKey user @ ip 工作
chmod 755私钥 [dev] $ ssh -i privateKey user @ ip 它给出以下问题: “ privateKey”的权限0755太开放了。 要求他人不能访问您的私钥文件。 此私钥将被忽略。 加载密钥“ privateKey”:权限错误
答案 24 :(得分:0)
另一个技巧是在downloads文件夹上执行此操作。 从AWS EC2实例下载私钥后,文件将位于此文件夹中,然后只需键入命令
ssh-keygen -y -f myprivateKey.pem> mypublicKey.pub
答案 25 :(得分:0)
我在玩Ansible时遇到了这个错误。我已将私钥的权限更改为 600 以解决此问题。它有效!
chmod 600 .vagrant/machines/default/virtualbox/private_key
答案 26 :(得分:0)
我在连接到 AWS 实例时在 Windows 上的 WSL 上遇到了这个问题。我的问题通过切换到经典的命令提示符得到了解决。您可以尝试切换到其他终端界面,看看是否有帮助。
答案 27 :(得分:0)
我通过“sudo”获得了成功
sudo chmod 400 pem-file.pem
sudo ssh -i pem-file.pem username@X.X.X.X
答案 28 :(得分:0)
就我而言,问题是空格太多。
ssh -i mykey.pem ubuntu@instace.eu-north-1.compute.amazonaws.com
但是
ssh -i mykey.pem ubuntu@instace.eu-north-1.compute.amazonaws.com
工作正常。问题是空格被当作用户名的一部分。
答案 29 :(得分:0)
我正在使用 Windows 10 并尝试通过 SSH 连接到 EC2 实例 与其在 Windows 上使用 cygwin,不如尝试使用 gitbash。 在对密钥执行 chmod 400 后,我可以通过 SSH 连接到 EC2 实例,但在 cygwin 中同样对我不起作用。 Windows 将 .pem 文件视为来自互联网并阻止它,即使禁用继承也不起作用。
我将文件转换为 .ppk 格式,它也可以从腻子中正常工作。 它不适用于 cygwin。
答案 30 :(得分:-1)
Putty可以在Windows 10上完成工作。它使用私钥作为输入来生成公钥。
答案 31 :(得分:-1)
我在EC2上使用VPC并收到相同的错误消息。我注意到我正在使用公共DNS。我改为私有DNS和挥发!!它有效...
答案 32 :(得分:-2)
对于Win10,需要将密钥移至用户的主目录 对于linuxlike操作系统,您需要将chmod设置为700 like或600 etc。