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


当前回答

我在玩Ansible时遇到了这个错误。为了解决这个问题,我已将私钥的权限更改为600。而且成功了!

chmod 600 .vagrant/machines/default/virtualbox/private_key

其他回答

在Windows 10上,cygwin的chmod和chgrp对我来说还不够

右键单击文件->财产->安全性(选项卡)并删除除我的活动用户之外的所有用户和组。

如果您在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。

我在玩Ansible时遇到了这个错误。为了解决这个问题,我已将私钥的权限更改为600。而且成功了!

chmod 600 .vagrant/machines/default/virtualbox/private_key

在我的例子中,我试图从Windows 10中的Ubuntu应用程序连接,并得到了上面的错误。通过在实际命令之前在Ubuntu控制台中运行sudo-su,可以在没有任何权限更改的情况下解决该问题

我用sudo成功了

sudo chmod 400 pem-file.pem
sudo ssh -i pem-file.pem username@X.X.X.X