创建 ~/.ssh/config 后 SSH 无法工作:“所有者或权限错误”

创建 ~/.ssh/config 后 SSH 无法工作:“所有者或权限错误”

我是 Linux 世界的新手,正在尝试学习如何通过 LearnLinuxTV 使用 SSH;作者 Jay 创建了一个用户ssh_config

Host myserv
  Hostname xxx.xxx.x.xx
  Port 22
  User root

我可以通过以下方式连接:ssh [email protected]~/.ssh/config

Host sshtrainingserver
  tty.sdf.org
  Port 22
  User gusop
  • 保存文件后,我无法ssh sshtrainingserver工作,总是出现以下错误;但是,删除后,ssh 又可以工作了。ssh [email protected]config

    Bad owner or permissions on /home/gusop/.ssh/config
    
  • ls -l ~/.ssh/config

    -rw-rw-r--  1 Gusop Gusop 108 Mar 12 10:42  config
    


你能解释一下发生了什么吗,因为感觉 SSH 不喜欢这个配置文件?

答案1

如果 ssh 的配置文件和私钥可由其他用户写入,则它们会对您的帐户造成严重的安全风险,因此如果它们所在的目录或文件可由其他用户写入(或私钥可由其他人读取),ssh 将拒绝使用它们。

chmod g-w创建文件后,您需要对其进行访问,以便 ssh 能够使用它。

这是必要的,因为默认的 umask 保留组写入权限,以方便在组中工作。一般来说,这可能不是那么大的风险,因为您的组中可能没有其他用户(或者如果有的话您知道),但 ssh 保持警惕也是有好处的。

答案2

根据ssh_config 手册页,用户的权限必须是600|| :644config

~/.ssh/config
这是每个用户的配置文件。此文件的格式如上所述。此文件由 SSH 客户端使用。由于可能被滥用,该文件必须具有严格的权限:用户可读/写,其他人不可写

而系统范围ssh_config必须是全球可读的(通常644

/etc/ssh/ssh_config
系统范围的配置文件。此文件为用户配置文件中未指定的值以及没有配置文件的用户提供默认值。此文件必须是全球可读的。

相关内容