我是 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
|| :644
config
~/.ssh/config
:
这是每个用户的配置文件。此文件的格式如上所述。此文件由 SSH 客户端使用。由于可能被滥用,该文件必须具有严格的权限:用户可读/写,其他人不可写。
而系统范围ssh_config
必须是全球可读的(通常644
):
/etc/ssh/ssh_config
:
系统范围的配置文件。此文件为用户配置文件中未指定的值以及没有配置文件的用户提供默认值。此文件必须是全球可读的。