ssh 配置文件的所有者或权限不正确

sym*_*oio 4 linux ssh openssh ssh-keys

我意识到我无法再连接到x.x.202.50. 昨天我更改了以下 ssh 配置文件:/share/homes/admin/.ssh/config通过添加以下设置:

# ssh (secure shell) configuration file
Host webserver
    HostName x.x.212.50
    User user1
    IdentityFile ~/.ssh/id_rsa `
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是为了同步目的启用密钥登录(使用Unison)。

现在,当我尝试连接到服务器时,我收到以下错误:

/share/homes/admin/.ssh/config 上的所有者或权限不正确

Putty从 Windows 10 和 Linux 服务器连接到另一台 Linux 服务器。

因为我参与了一个项目,我需要连接到服务器,我不知道怎么做。有人知道怎么做这个吗?

Ain*_*riú 118

您需要更改.ssh目录的权限。运行以下命令(我发现 600 不会自行修复它):

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
Run Code Online (Sandbox Code Playgroud)


Jak*_*uje 7

对于可能影响安全性的文件(私钥、配置文件、授权密钥)的一般规则是,除所有者之外的任何人都不能写入它们(私钥不应该被访问!)。

错误来自以下openssh 代码

if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
    (sb.st_mode & 022) != 0))
      fatal("Bad owner or permissions on %s", filename);
Run Code Online (Sandbox Code Playgroud)

所以将它翻译成英文,意味着配置文件必须由 root 或运行的用户拥有,ssh并且不能被任何组或其他用户写入。

正如评论中已经指出的那样,您可能以某种方式将此权限授予某人,因此删除这些权限应该可以解决该问题:

chmod go-w /share/homes/admin/.ssh/config
Run Code Online (Sandbox Code Playgroud)