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

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

我意识到我不再能够连接到 上的 Web 服务器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 `

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

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

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

Putty我从 Windows 10 和 Linux 服务器建立了到另一台 Linux 服务器的连接。

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

答案1

您需要更改 .ssh 目录的权限。运行以下命令(我发现 600 无法自行修复此问题):

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

答案2

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

错误来自openssh 代码以下:

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

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

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

chmod go-w /share/homes/admin/.ssh/config

答案3

我有一台单用户 Linux 机器,它与 root 帐户共享同一个 '.ssh' 目录。/root/.ssh 是一个符号链接,指向用户的 '/home/username/.ssh' 文件夹。

我最近才添加了 ~/.ssh/config 文件,这导致 SSH 在从 root 帐户调用 SSH 和 SSHFS 时向我发出错误消息。对我来说,解决方案是执行以下操作:

chown root:$USER ~/.ssh/config
chmod 644 ~/.ssh/config

但是,当我必须编辑文件时,这有点问题,因为它要求我弄乱文件的权限和所有权,然后将它们翻转回来。但这是我自己的问题,因为我选择在帐户之间共享文件夹。我创建了一些 shell 脚本,仅在使用 root 用户帐户调用“sshfs”或“ssh”命令时翻转权限。

答案4

其他答案只能解决权限错误的问题。但是,在我的情况下,问题是文件所有者错误。您可以运行ls -l ~/.ssh以查看有关权限和所有者的信息。文件所有者可以在第 3 列中看到。如果错误,请执行:

chown <newOwner> <fileName>

相关内容