PowerShell / PowerShell/Win32-OpenSSH

Accept SIDs in the AllowGroups/DenyGroups statements

Open
#1,640 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
8.3k
Forks
819
PR merge metrics
No merged PRs in 30d

Description

Troubleshooting steps
https://github.com/PowerShell/Win32-OpenSSH/wiki/Troubleshooting-Steps

None

Terminal issue? please go through wiki
https://github.com/PowerShell/Win32-OpenSSH/wiki/TTY-PTY-support-in-Windows-OpenSSH

No

Please answer the following

"OpenSSH for Windows" version
((Get-Item (Get-Command sshd).Source).VersionInfo.FileVersion)

7.7.2.2

Server OperatingSystem
((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows nt\CurrentVersion\" -Name ProductName).ProductName)

Windows Server 2019 Datacenter ( 10.0.17763.1339 )

Client OperatingSystem

Windows 10 Pro ( 10.0.19041.388 )

What is failing

Nothing

Expected output

Not applicable

Actual output

Not applicable


Suggestion

Because Windows localizes Group names like "Administrators", it is difficult to deploy a safe sshd_config to multiple machines or servers. By allowing SIDs, one can easily reference well-known groups without language barriers in Deny, Allow or Match statements.

A similar syntax to icacls.exe could be used, where a username and an SID is accepted at the command line but an SID must be prefixed with *, e.g. icacls file /grant *S-1-1-0:(D,WDAC) (fom the official icacls /? examples)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how AllowGroups, DenyGroups, and Match statements are parsed from sshd_config, then review the Windows group-resolution path and the icacls SID syntax referenced in the issue. Done means these statements accept language-independent SIDs, including the proposed prefixed form, while preserving existing username and group-name behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
authorization, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.