mirror of
https://github.com/PowerShell/Win32-OpenSSH.git
synced 2025-07-29 17:04:41 +02:00
Updated Security protection of various files in Win32 OpenSSH (markdown)
parent
3006cc98e3
commit
0bd54d94b5
@ -1,31 +1,53 @@
|
|||||||
# Secure protection of keys and config files
|
# Secure protection of keys and config files
|
||||||
|
|
||||||
Starting with the release of [v0.0.13.0][build13], Win32-OpenSSH ensures files are secure before they are loaded.
|
Starting with the release of [v0.0.13.0][build13], Win32-OpenSSH ensures any configuration and key files are secure before they are loaded.
|
||||||
`ssh-keygen.exe` generates protected key files as well.
|
|
||||||
|
|
||||||
The following files need to be "secure":
|
Specifically, following permission checks are enforced:
|
||||||
|
- User specific resources on client side -
|
||||||
|
- User's private keys should not be accessible to other users.
|
||||||
|
- User's ssh_config (%userprofile%\.ssh\config) should not be accessible to other users.
|
||||||
|
- Ex. ssh would fail to use the following private key for userA, since "someotheruser" also has access.
|
||||||
|
```
|
||||||
|
c:\>icacls userkey
|
||||||
|
userkey userA(F)
|
||||||
|
someotheruser(R)
|
||||||
|
```
|
||||||
|
- User specific resources on server side - authorized_keys
|
||||||
|
- Should not be accessible to other users.
|
||||||
|
- "NT Service/sshd" can only have (R) access.
|
||||||
|
- Ex. sshd would not respect the following authorized_keys for userA, since "someotheruser" also has access.
|
||||||
|
```
|
||||||
|
c:\>icacls authorized_keys
|
||||||
|
authorized_keys NT SERVICE\sshd:(R)
|
||||||
|
userA(F)
|
||||||
|
someotheruser(R)
|
||||||
|
```
|
||||||
|
- Host specific resources on server side - host private keys
|
||||||
|
- Should not be owned by a non-admin user
|
||||||
|
- Should not be accessible to any non-admin user
|
||||||
|
- "NT Service/sshd" can only have (R) access.
|
||||||
|
- Ex. sshd would not respect the following host key, since "nonadmin" has access.
|
||||||
|
```
|
||||||
|
c:\>icacls hostkey
|
||||||
|
hostkey NT SERVICE\sshd:(R)
|
||||||
|
admin(F)
|
||||||
|
nonadmin(R)
|
||||||
|
```
|
||||||
|
|
||||||
- on the client-side
|
## Tips to adjust permissions
|
||||||
- user's private keys
|
### icacls
|
||||||
- user's `ssh_config` located at `~\.ssh\config`
|
You could use icacls to add / remove permissions on a given file
|
||||||
- on the server-side
|
Ex. you could do the following to fix permissions on user's private key file
|
||||||
- user's `authorized_keys`
|
```
|
||||||
- private host keys
|
c:\>icacls userkey
|
||||||
|
userkey userA(F)
|
||||||
"Secure" means:
|
someotheruser(R)
|
||||||
|
c:>icacls userkey /remove someotheruser
|
||||||
1. The file owner of these files must be one of the following (additionally, no other users or groups may have any access to the files):
|
c:\>icacls userkey
|
||||||
- the local Administrators group
|
userkey userA(F)
|
||||||
- LocalSystem account
|
```
|
||||||
- a user in the local Administrators group
|
|
||||||
- the user associated with a user key or user config
|
|
||||||
1. `NT Service\sshd` must have (and only have) Read access to `authorized_keys` and all host keys.
|
|
||||||
(Note: this means that `NT Service\sshd` *cannot* have Write access or Full Control.)
|
|
||||||
|
|
||||||
## Utility scripts to adjust file permissions
|
|
||||||
|
|
||||||
The following scripts are used in instructions below to help with managing the permissions of key files:
|
|
||||||
|
|
||||||
|
You could also user the following PowerShell based routines to help with adjusting permissions
|
||||||
### Set-SecureFileACL
|
### Set-SecureFileACL
|
||||||
|
|
||||||
`Set-SecureFileACL` removes inherited ACLs on a file, assigns the current user as an owner (unless the `-Owner` parameter is specified), and grants the owner Full Control of the file:
|
`Set-SecureFileACL` removes inherited ACLs on a file, assigns the current user as an owner (unless the `-Owner` parameter is specified), and grants the owner Full Control of the file:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user