Considering shipping ssh-keysign non-setuid
Colin Watson
cjwatson at debian.org
Fri May 15 23:43:27 AEST 2026
In light of things like
https://github.com/0xdeadbeefnetwork/ssh-keysign-pwn and the general
attack surface of set-id, I'm considering changing Debian's OpenSSH
packaging to ship ssh-keysign non-setuid, and patching the documentation
to tell users that they need to make it setuid root (using a
Debian-specific tool that causes that kind of change to be preserved
across upgrades) if they want to use host-based authentication. My
sense is that host-based authentication is quite niche these days and
that it already involves a certain amount of specialized setup anyway.
As far as upgrade considerations go, ssh-keysign is client-side, so
there should be no risk of making people's machines inaccessible on
upgrade. We could possibly detect whether `EnableSSHKeysign yes` is
already set in the client configuration and preserve the setuid bit in
that case.
Would the upstream developers have any objection to this configuration?
It would be a difference from what `make install` does and it's possible
that it might result in the odd stray support request, so it seemed
polite to check.
Alternatively (or additionally), I'm considering splitting ssh-keysign
out to a separate `openssh-keysign` package, since most users don't need
to have it installed at all.
It looks as though Fedora does both these things (a separate package,
and no setuid bit). They seem to have no documentation of how to make
ssh-keysign persistently setuid on systems that require it, at least not
in their packaging.
Thanks,
--
Colin Watson (he/him) [cjwatson at debian.org]
More information about the openssh-unix-dev
mailing list