ssh is no longer using ~/.ssh/config
I cannot ssh anything I was able to. After a little digging I found out that it's not reading ssh config from my home directory.
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)
When on an identical computer of a friend, where everything works it looks like this:
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)
It worked earlier and I am not aware of anything I could have done to cause this problem. How could this happen, and how to fix it?
In documentation link pointed by tike it states that
Because of the potential for abuse, this file must have strict permissions: read/write for the user, and not accessible by others.
My permissions are:
$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba 1029 1428 Jul 1 16:33 ..
-rwx------ 1 kuba 1029 1528 May 15 13:07 config
(...)
I think the problem might be with a confusion about home directory. When I force the local config file it starts to work, and then suddenly starts reading from /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
^^^^^^^^^^
But my home dir seems to be set ok:
$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba
Solution 1:
You seem to be trapped between user specific vs global ssh_config.
Please check the permission settings of your user's configuration file (~/.ssh/config
) and your system-wide configuration file (/etc/ssh/ssh_config
) to understand in more details.
You can read more about this here. Practically, all files under your user based .ssh
directory should be on 600, and the config
file should be on 644. You can set this with the following commands in your home directory:
chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/config
Solution 2:
check permissions
ls -lsd ~/.ssh
and
ls -ls ~/.ssh/*
If the permissions are bad then the ssh client won't try to read from it
Solution 3:
For what it's worth, I had the same problem and fixed it by making ssh to create again the .ssh
folder (just rename ssh
and execute some ssh command), and copying the needed files afterwards, with the appropriate permissions. (config with 600).
Apparently ssh becomes suspicious if the folder .ssh
is modified in a way it doesn't approve of...