From: Daniel Kral <d.kral@proxmox.com>
To: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>,
"Wolfgang Bumiller" <w.bumiller@proxmox.com>
Cc: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] [RFC container] setup: remove deprecated dsa from ssh host key generation
Date: Fri, 27 Jun 2025 10:59:35 +0200 [thread overview]
Message-ID: <f4e7a434-2d03-49b5-b4bc-9f2791a5fb81@proxmox.com> (raw)
In-Reply-To: <2144670364.9427.1751013988849@192.168.2.153>
On 6/27/25 10:46, Fabian Grünbichler wrote:
>
>> Daniel Kral <d.kral@proxmox.com> hat am 27.06.2025 10:20 CEST geschrieben:
>>
>>
>> On 6/27/25 07:04, Fabian Grünbichler wrote:
>>>
>>>> Wolfgang Bumiller <w.bumiller@proxmox.com> hat am 26.06.2025 13:36 CEST geschrieben:
>>>>
>>>>
>>>> On Wed, Jun 25, 2025 at 11:56:31AM +0200, Daniel Kral wrote:
>>>>> OpenSSH 10.0 removes support for the DSA signature algorithm [0], which
>>>>> is the base version that will be shipped for Debian 13 trixie [1]. Since
>>>>> it has been marked deprecated for some time and generating DSA
>>>>> signatures with OpenSSH 10.0 will fail, remove it.
>>>>
>>>> We should probably actively remove existing dsa host keys in case a
>>>> container template ships them, just to make sure older distro containers
>>>> won't end up all sharing the same DSA key when created on a trixie
>>>> pve...
>>>>
>>>> In fact, maybe we should remove all files matching
>>>> `/etc/ssh/ssh_host_*` in the setup code, in case there are types we
>>>> missed?
>>>
>>> that sounds like a good idea, but should probably be visibly logged.
>>>
>>> for legacy distros (which are not the best fit for containers anyway)
>>> it's always possible to generate keys if needed inside the container
>>> afterwards..
>>
>> So something like
>>
>> sub remove_existing_ssh_host_keys {
>> my ($self, $conf) = @_;
>>
>> my $ssh_dir = "$self->{rootdir}/etc/ssh";
>>
>> return if !-d $ssh_dir;
>>
>> my $keyfiles = [];
>> PVE::Tools::dir_glob_foreach(
>> $ssh_dir,
>> qr/ssh_host_.*/,
>> sub {
>> my ($key_filename) = @_;
>>
>> next if $self->ct_is_file_ignored($key_filename);
>>
>> print "Removing pre-existing ssh host key
>> '$key_filename' ...\n";
>>
>> push $keyfiles->@*, $key_filename;
>> }
>> );
>>
>> $self->protected_call(sub {
>> for my $key_filename ($keyfiles->@*) {
>> $self->ct_unlink($key_filename);
>> }
>> });
>> }
>>
>> and calling it in PVE::LXC::Setup::Base::post_create_hook(...), so that
>> unmanaged containers are not affected by this?
>
> we already have PVE::LXC::Setup::rewrite_ssh_host_keys which AFAICT is
> called unconditionally in Setup::post_create_hook even for unmanaged
> containers, given that precedent I think we can just extend that..
Right, then I'll extend that one instead.
>
> while we are at it we could add .ignore support if we really want to
> have an option of skipping deletion and regeneration..
I added the check ct_is_file_ignored($key_filename) because
ct_unlink($key_filename) later checks against that and then the log
message would be wrong, right? Or should the later rewrite_ssh_host_keys
part also acknowledge ct_is_file_ignored(...)?
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2025-06-27 8:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-25 9:56 Daniel Kral
2025-06-26 11:36 ` Wolfgang Bumiller
2025-06-27 5:04 ` Fabian Grünbichler
2025-06-27 8:20 ` Daniel Kral
2025-06-27 8:46 ` Fabian Grünbichler
2025-06-27 8:59 ` Daniel Kral [this message]
2025-06-27 9:06 ` Fabian Grünbichler
2025-06-27 9:44 ` Daniel Kral
2025-06-27 10:11 ` Fabian Grünbichler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f4e7a434-2d03-49b5-b4bc-9f2791a5fb81@proxmox.com \
--to=d.kral@proxmox.com \
--cc=f.gruenbichler@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
--cc=w.bumiller@proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.