@cert-authority for hostbased auth - sans shosts?

Morgan, Iain (ARC-TN)[InuTeq, LLC] iain.morgan at nasa.gov
Thu Nov 16 09:12:47 AEDT 2023

On 11/15/23, 10:51 AM, "openssh-unix-dev on behalf of Marian Beermann" <openssh-unix-dev-bounces+iain.morgan=nasa.gov at mindrot.org <mailto:nasa.gov at mindrot.org> on behalf of public at enkore.de <mailto:public at enkore.de>> wrote:

On 11/15/23 18:09, Chris Rapier wrote:
> On 11/11/23 9:31 PM, Damien Miller wrote:
>> It's not discouraged so much as rarely used. It's very useful in some
>> situations and I can think of good reasons to use it more often (e.g
>> requiring both host and user identity as part of authentication).
>> It definitely has more rough edges than user publickey authentication -
>> it's harder to set up (admin only) and harder to debug, as it requires
>> access to authentication logs and we haven't put as much effort in to
>> making the logs useful and actionable when something is misconfigured.
> We use it extensively to manage the nodes in our HPC clusters. It ends
> up being much less difficult to maintain that the alternatives.
That's our use case as well. Probably the most common use case for
hostbased methods?

Normal key-based authentication methods would require keeping O(N*M)
(N=number of users, M=number of nodes) items (millions) in sync: every
user's key would need to be on every node in their
~/.ssh/authorized_keys and every node's host key needs to be in every
other node's /etc/ssh/known_hosts + shosts.

With hostbased only the latter part (/etc/ssh/known_hosts + shosts) is

With @cert-authority only the shosts is needed. Which is already a
significant advantage, because no keys need to be synced any more.

With a hypothetical /etc/ssh/authorized_keys (or an equivalent
mechanism, like a @hostbased-authority flag in /etc/ssh/known_hosts)
nothing would need to be synced at all (conversely: no more ssh breakage
"from first principles"), unless the CA root has to be rotated.

Cheers, Marian

Well, issuing user certs or leveraging AuthorizedKeysCommand can help in the case where pubkey authentication is used instead of hostbased.  But, hostbased is generqally seen as more convenient in a cluster situation.  I assume that you are aware of the shosts.equiv file, which can reduce the need for individual .shosts files.

As an aside, there doesn't seem to be any documentation in the man pages regarding the format of shosts.equiv, ~/.shosts, etc.  I thought the man pages used to refer to rsh(1) or rlogin(1) for this, but I seem to be unable to find that.  Since modern systems rarely have those installed, the ssh(1) or sshd(8) man pages should probably document the trivial format.


More information about the openssh-unix-dev mailing list