3 ms·
> The service itself sometimes controls which user can access which data, Sure, but ssh-agent does not. That's what I was alluding to with "major surgery". Al
by slrz 8y ago
> The service itself sometimes controls which user can access which data,
Sure, but ssh-agent does not. That's what I was alluding to with "major surgery".
Also, while the encrypted keys are stored in the file system or registry, the agent process necessarily has them in unencrypted form. That's the reason for loading keys into the agent in the first place.
To have an ssh-agent that can run as a privileged system service with multiple unprivileged clients, you need to extend it to have some notion of client identity and per-user key space. The standard OpenSSH ssh-agent doesn't have that. Users run their own instance each and if you can connect to it, you can use the keys loaded into it. All of them.
The agent code at github.com/PowerShell/openssh-portable doesn't look any different to me, at least from a cursory glance.
Thus, the decision to run it as a system service seems odd to me.
edit: are they hooking into the agent as a PKCS11 provider/"smartcard" and the plaintext keys never even hit the agent's in-memory table, to be queried by all connected clients?