我从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文件什么权限?
当前回答
在连接到AWS实例时,我在Windows上的WSL上遇到了这个问题。通过切换到经典的命令提示符,我的问题得到了解决。您可以尝试切换到不同的终端接口,看看这是否有帮助。
其他回答
我在玩Ansible时遇到了这个错误。为了解决这个问题,我已将私钥的权限更改为600。而且成功了!
chmod 600 .vagrant/machines/default/virtualbox/private_key
这是对我有用的(在mac上)
sudo chmod 600 path_to_your_key.pem
那么:
ssh -i path_to_your_key user@server_ip
希望能有所帮助
这里有有趣的消息。如果您的私钥太开放,操作系统足够聪明,可以拒绝远程连接。它了解id_rsa的权限是完全开放的(可以阅读,任何人都可以编辑)的风险。
{一个人可以先换锁,然后用他已有的钥匙打开它}
cd ~/.ssh
chmod 400 id_rsa
在使用多个服务器(非生产服务器)时,我们大多数人都觉得需要使用ssh连接远程服务器。一个好主意是使用一段应用程序级代码(可以是使用jsch的java)在服务器之间创建ssh信任。这种方式的连接将是无密码的。如果安装了perl,那么也可以使用netssh模块。
如果您在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中遇到了错误,因此我将权限设置为如下,并且可以正常工作。
详细信息,请删除其他用户/组,直到它只有“SYSTEM”和“Administrators”。然后将您的windows登录名添加到只有“读取”权限的窗口中。
请注意,id_rsa文件位于c:\users\<username>文件夹下。