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