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


当前回答

这里有有趣的消息。如果您的私钥太开放,操作系统足够聪明,可以拒绝远程连接。它了解id_rsa的权限是完全开放的(可以阅读,任何人都可以编辑)的风险。

{一个人可以先换锁,然后用他已有的钥匙打开它}

cd ~/.ssh
chmod 400 id_rsa

在使用多个服务器(非生产服务器)时,我们大多数人都觉得需要使用ssh连接远程服务器。一个好主意是使用一段应用程序级代码(可以是使用jsch的java)在服务器之间创建ssh信任。这种方式的连接将是无密码的。如果安装了perl,那么也可以使用netssh模块。

其他回答

我在windows 10中遇到了错误,因此我将权限设置为如下,并且可以正常工作。

详细信息,请删除其他用户/组,直到它只有“SYSTEM”和“Administrators”。然后将您的windows登录名添加到只有“读取”权限的窗口中。

请注意,id_rsa文件位于c:\users\<username>文件夹下。

在连接到AWS实例时,我在Windows上的WSL上遇到了这个问题。通过切换到经典的命令提示符,我的问题得到了解决。您可以尝试切换到不同的终端接口,看看这是否有帮助。

对于Win10,需要将密钥移动到用户的主目录对于linuxlike操作系统,您需要chmod到700或600等。

在Windows 8.1中使用Cygwin时,需要运行以下命令:

chgrp Users ~/.ssh/id_rsa

然后可以应用此处发布的解决方案,400或600即可。

chmod 600 ~/.ssh/id_rsa

此处引用

适用于Windows 8.1的独立于区域设置的解决方案是:

chgrp 545 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

GID 545是一个特殊的ID,它总是指“用户”组,即使您的语言环境使用了不同的“用户”。