SSH Server Refused Our Key

After I changed the HOME folder to another place, I copied the ssh config folder from old HOME to the new place. Supposedly it should directly work, right? However, when I login the server with my private key, the server said: "Server Refused Our Key"...

I spent some time to figure out the problem: new HOME folder access mode issue, it SHOULD NOT have write access for group.

Firstly, I think the server sshd uses wrong config: OLDHOME/.ssh/. However, NEWHOME/.ssh/ contains same files, either one should work.

Check the server error log:

~$: tail /var/log/auth.log
...
Mar 28 17:08:43 DEAN sshd[40801]: Authentication refused: bad ownership or modes for directory NEWHOME

The message clearly points out the issue, then I google this message and found that, by default, ssh StrictModes option is on, and it requires the HOME folder not have group write access. Besides, the .ssh/ foler should be 700, the authorized_keys file should be 600:

chmod g-w /home/user/
chmod 700 /home/user/.ssh/
chmod 600 /home/user/.ssh/authorized_keys

Or you can switch StrictModes off, but highly not recommended to do so. Because the StrictModes prevents other users modify your .ssh/ to illegally login.

Finally the login success message appears:

Using username "X".
Authenticating with public key "rsa-key"
Welcome to Ubuntu 18.04.3 LTS

Reference

# SSH Authentication Refused: Bad Ownership or Modes for Directory