我从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文件什么权限?
当前回答
我将所有自己的证书和密钥保存在一个目录中,这适用于PuTTY之类的工具,但我从scp命令中收到了一条过于开放的错误消息。我发现Windows已经维护了一个C:\users\ACCOUNTNAME\.ssh文件夹,该文件夹具有存储ssh密钥的适当访问权限。只要您备份内容(Windows有时会在更新期间删除内容),或者在用户文件夹中为ssh密钥创建自己的文件夹,这将很好,因为只有您和管理员才能访问该父文件夹。
在更改Windows文件夹的访问权限时要非常小心。我这样做了,每天Windows都会扫描、读取和写入我的C:驱动器上的所有文件,这一过程会让电脑慢很多分钟。
其他回答
在Windows 10上,cygwin的chmod和chgrp对我来说还不够
右键单击文件->财产->安全性(选项卡)并删除除我的活动用户之外的所有用户和组。
对于Windows 10,这是我发现的适合我的功能:
将密钥移动到Linux文件系统:mv~/.ssh/home/{用户名}设置该密钥的权限:chmod 700/home/{用户名}/.ssh/id_rsa创建指向密钥的符号链接:ln-s/home/{用户名}/.ssh~/.ssh
如果您将主目录(~)设置为存储在Windows而不是Linux中(在/mnt/vs/home/下),就会发生这种情况。
如果您在windows上使用WSL
最简单的答案是键入:sudo ssh-i keyfile.pem<user>@ip
而不更改文件权限。发生这种情况的原因是什么?另一种资源
您不能修改Windows文件系统上文件的权限在Windows上的Ubuntu上使用chmod on Bash。您必须复制WSL主目录(~)的私钥,并在那里执行。
另一方面,sudo不应与ssh一起使用。使用sudo发出命令之所以有效,是因为它现在很可能以root身份执行,而这不是正确的方式,并且存在巨大的安全风险,因为允许使用600/400权限以外的任何权限都会破坏使用SSH密钥的目的,从而危及密钥的安全性。
最好的方法是将文件复制到$HOME/.ssh:
cp密钥文件.pem~/.ssh
对其执行sudo chmod 400 keyfile.pem。
然后ssh-i keyfile.pem<user>@ip。
我正在使用Windows 10,并尝试通过SSH连接到EC2实例。不要使用Cygwin for Windows,而是尝试使用Git Bash。在为密钥执行chmod 400之后,我可以通过SSH连接到EC2实例,但从Cygwin看,这一点不适用。Windows将.pem文件视为来自internet并阻止它,即使禁用继承也不起作用。
我将文件转换为.ppk格式,PuTTY也能正常工作,但Cygwin无法正常工作。
密钥上的0x00权限要求有一个例外。如果密钥由root用户拥有,而组由包含用户的组拥有,则该密钥可以是0440,并且该组中的任何用户都可以使用该密钥。
我相信这可以在集合0xx0中使用任何权限,但我还没有测试每个版本的每个组合。我已经在CentOS 6上尝试了0660和5.3p1-84,该组不是用户的主要组,而是次要组,并且工作正常。
这通常不会针对某人的个人密钥,而是针对用于自动化的密钥,在这种情况下,您不希望应用程序使用该密钥。
类似的规则适用于.ssh目录限制。