load key "xx": bad permissions 的解决办法

2024 年 3 月 27 日 星期三(已编辑)
7
摘要
在通过 SSH 连接到远程服务器时,可能会遇到"ssh permission too open"和"bad permission"的错误。这是因为系统中文件密钥的访问权限过于宽松所致。 针对 Linux 系统,可以通过修改密钥文件的权限为只读(chmod 400)或仅拥有者可读写(chmod 600)来解决。 对于 Windows 系统,可以使用提供的 bat 脚本来便捷地更改密钥文件权限,从而解决此类权限问题。 运行脚本后,确认输出"Successfully processed 1 file"即表示修改成功。接着就可以顺利通过 SSH 连接到远程服务器了。

一、问题描述

当我们需要通过ssh连接到服务器主机时,可能会出现如下的报错

出现该问题的主要原因在于,在系统中,文件密钥的访问权限过于宽松,导致出现 ssh permission too open 以及 bad permission 的报错

二、解决方案

1、linux系统

在Linux系统下,我们可以很容易的在shell中更改文件的读写权限,

  • 将密钥文件的权限改为只读:
chmod 400 ~/.ssh/id_rsa
  • 又或者改为仅拥有者有读写权限:
chmod 600 ~/.ssh/id_rsa

2、Windows系统

在Windows系统中,对于密钥读写权限的更改往往比Linux下复杂许多,我们可以通过在以管理员模式运行的cmd中对其进行修改,这里我将它编写成了一个bat文件,可以很方便的更改密钥文件的读写权限,以解决权限过宽的问题。

下载点此!

双击change_permission.bat,输入你的密钥所在路径:

随后回车,等待运行成功,当返回Successfully processed 1 file时,即表示成功

此时我们再通过ssh连接远程服务器时,可以顺利的进入:

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...