我从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文件什么权限?
当前回答
对于Windows:
奇怪,但之前在这里描述的UI调整对我没有帮助。
但这解决了问题:
以管理员权限打开PowerShell使用您的密钥转到目录(使用cd命令)逐个输入命令
:
$path = ".\{your private key file name}" //for example "myKey"
然后键入以下命令删除显式权限:
icacls.exe $path /reset
然后将读取权限分配给当前用户:
icacls.exe $path /GRANT:R "$($env:USERNAME):(R)"
然后删除继承:
icacls.exe $path /inheritance:r
希望,会帮助某人
其他回答
我在EC2上使用VPC,并收到相同的错误消息。我注意到我在使用公共DNS。我把它改成了专用DNS和vola!!它奏效了。。。
我用sudo成功了
sudo chmod 400 pem-file.pem
sudo ssh -i pem-file.pem username@X.X.X.X
密钥上的0x00权限要求有一个例外。如果密钥由root用户拥有,而组由包含用户的组拥有,则该密钥可以是0440,并且该组中的任何用户都可以使用该密钥。
我相信这可以在集合0xx0中使用任何权限,但我还没有测试每个版本的每个组合。我已经在CentOS 6上尝试了0660和5.3p1-84,该组不是用户的主要组,而是次要组,并且工作正常。
这通常不会针对某人的个人密钥,而是针对用于自动化的密钥,在这种情况下,您不希望应用程序使用该密钥。
类似的规则适用于.ssh目录限制。
这里有有趣的消息。如果您的私钥太开放,操作系统足够聪明,可以拒绝远程连接。它了解id_rsa的权限是完全开放的(可以阅读,任何人都可以编辑)的风险。
{一个人可以先换锁,然后用他已有的钥匙打开它}
cd ~/.ssh
chmod 400 id_rsa
在使用多个服务器(非生产服务器)时,我们大多数人都觉得需要使用ssh连接远程服务器。一个好主意是使用一段应用程序级代码(可以是使用jsch的java)在服务器之间创建ssh信任。这种方式的连接将是无密码的。如果安装了perl,那么也可以使用netssh模块。
在我的案例中,问题是空白太多。
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
工作正常。问题是空白被视为用户名的一部分。