SSH connection issue : How to change folder / file permissions in Windows similarly to Linux?
Solution 1:
While incorrect file permissions can be an issue and they indeed often are, they are not the only cause of login failures.
Rather than trying solutions, please investigate the cause for your problem.
Check for example the ssh server logging for error messages and use those to find an appropriate solution.
If the file permissions on your $env:USERPROFILE\.ssh\authorized_keys
file really are the problem: a really quick search found for example https://stackoverflow.com/a/50502015 which details how to set up ssh with public key authentication on a Windows host.
Setup permissions properly (important!!!):
- Run
start .
to open explorer with the current folder ($env:USERPROFILE\.ssh
);- Right click
authorized_keys
, go toProperties -> Security -> Advanced
- Click "Disable inheritance";
- Choose "Convert inherited permissions into explicit permissions on this object" when prompted;
- (really, really important) Remove all permissions on file except for the
SYSTEM
and yourself. There must be exactly two permission entries on the file. Some guides suggest running theRepair-AuthorizedKeyPermission $env:USERPROFILE\.ssh\authorized_keys
- this will try to add the
sshd
user to the permission list and it will break the authentication, so, don't do that, or at least do not agree on adding thesshd
user). BothSYSTEM
and yourself should have full control over the file.
Also see: https://github.com/PowerShell/Win32-OpenSSH/wiki/Security-protection-of-various-files-in-Win32-OpenSSH