ssh 不再使用 ~/.ssh/config

ssh 不再使用 ~/.ssh/config

我无法 ssh 任何我能做到的事情。经过一番挖掘,我发现它没有从我的主目录中读取 ssh 配置。

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)

当在朋友的同一台计算机上时,一切正常运行,如下所示:

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)

之前它一直有效,我不知道我做了什么会导致这个问题。这是怎么发生的,如何解决?

在 tike 指出的文档链接中,它指出

由于可能被滥用,该文件必须具有严格的权限:仅供用户读/写,其他人不得访问。

我的权限是:

$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba  1029   1428 Jul  1 16:33 ..
-rwx------   1 kuba  1029   1528 May 15 13:07 config
(...)

我认为问题可能出在主目录混淆上。当我强制本地配置文件时,它开始工作,然后突然开始读取/nas/kuba

$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
                      ^^^^^^^^^^

但我的主目录似乎设置正确:

$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba

答案1

您似乎陷入了用户特定与全局 ssh_config 之间的困境。

请检查您的用户配置文件(~/.ssh/config)和系统范围配置文件(/etc/ssh/ssh_config)的权限设置,以了解更多详细信息。

您可以阅读更多有关此内容的内容这里。实际上,您基于用户的.ssh目录下的所有文件都应位于 600 上,而文件config应位于 644 上。您可以在主目录中使用以下命令进行设置:

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config

答案2

检查权限

ls -lsd ~/.ssh

ls -ls ~/.ssh/*

如果权限不好,那么 ssh 客户端将不会尝试读取它

答案3

不管怎样,我遇到了同样的问题,并通过让 ssh 再次创建文件夹.ssh(只需重命名ssh并执行一些 ssh 命令),然后使用适当的权限复制所需的文件来解决了这个问题。(配置为 600)。

显然,如果文件夹.ssh以 ssh 不认可的方式被修改,ssh 就会变得可疑......

答案4

如果本地配置位于 NFS 挂载的文件系统上,SSH 将不会读取本地配置。这值得检查,因为所有权限都可以正常使用,并且 SSH(至少是 6.6 版)不会向您提供任何有关它为何不读取用户配置的提示。(但是,如果您使用该-F选项,它将从 NFS 卷读取它。)

相关内容