> Esi Y via pve-devel <pve-devel@lists.proxmox.com> hat am 09.01.2024 06:01 CET 
> geschrieben:
> On Thu, Dec 21, 2023 at 10:53:11AM +0100, Fabian Grünbichler wrote:
> > RFC since this would be a bigger change in how we approach intra-cluster
> > SSH access.
> > 
> > there are still a few parts that currently don't use SSHInfo, but
> > would need to be switched over if we want to pursue this approach:
> > 
> > - get_vnc_connection_info in PVE::API2::Nodes
> > - 'upload' API endpoint in PVE::API2::Storage::Status
> > - SSH proxy in pvesh
> > 
> > these changes would need to happen coordinated with the patches from
> > this RFC series!
> 
> Not necessarily.

if we do the unmerge as well, then yes - else a node with unmerged known host 
would fail to connect to nodes that joined the cluster after unmerging.
  
> > next steps afterwards:
> > - unmerge known hosts in `pvecm updatecerts`, instead of merging
> > -- to disentangle regular ssh from intra-cluster SSH
> 
> Both of these could be accomplished with codebase/complexity reduction in an 
> approach to:

I am not sure what "both" means here? there is only a single thing quoted ;)

> 1.  eliminate shared ssh config and key files, i.e. completely remove any 
> need for symlinks; and

that's the evaluate part further below.

> 2.  instead initialise each node at join (first one at cluster creation) into 
> their respective node-local files with ssh certs; whilst

versus just copying the host key, which is far simpler?

> 3.  keeping the setup maintenance-free, since any single key addition/refresh 
> does not need to propagate any individual keys around the cluster; meanwhile

yes it does, changing the key would entail revoking the old one (and 
distributing that!) and signing the new one.

> 4.  no requirement for additional -o options;

we already need -o options anyway, so there is no downside to adding additional 
ones

> 5.  no requirement for sshd config appends, just drop-ins;

there's no need for sshd config changes either with the patches here?

> 6.  existing X509 CA key can be reused for ssh PKI as well.

that might no actually be the best of ideas ;)

> > -- to allow `ssh-keygen -f .. -R ..` to work properly again
> 
> Will always work with local-only files. In the other approach, the -R will 
> still not work with a file stored on pmxcfs.

yes, the -R will work with a file stored on pmxcfs. just not with a symlink, no 
matter where it points. which is why the next step above lists unmerging the 
known hosts to get rid of the symlink.
 
> > -- existing keys would still be preserved for not-yet-upgraded nodes, so 
> > this
> >    should be do-able without waiting for a major release..
> 
> With the ssh certs, the old (non-cert) keys could be safely left behind in 
> the pmxcfs location, upgraded nodes would append the previously shared 
> content into local files, old nodes would not make use of the new keys until 
> upgraded, but will keep working with the old to the extent they used to work. 
> Universal remedy for any legacy issues would be to upgrade the node.

the same is true for the patches here:
- updated nodes publish their own key, and use published keys if available
- non-updated nodes will still have the symlink and use the "old" merged file

> 
> > - evaluate whether we want to split out
> > -- the client config (we currently force a cipher order there)
> > -- the client key (could live in /etc/pve/priv instead?)
> > -- or even the sshd instance altogether (would allow not touching the
> >    regular sshd config at all)
> 
> Non-issue in the ssh certs approach.

on the contrary, all of the above are also valid for cert-based auth..

> What's the counter-argument to ssh certs, given the simlicity in comparison 
> with both the old approach and the intially suggested one here?

the one sentence summary - it doesn't get us closer to where we want to end up 
(either getting rid of SSH entirely, or full disentangling PVE-internal SSH use 
from the regular, default sshd instance), but adds more complexity instead.


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to