Your message dated Tue, 06 Oct 2026 17:19:13 +0000
with message-id <[email protected]>
and subject line Bug#1148080: fixed in openssh 1:10.6p1-1
has caused the Debian Bug report #1148080,
regarding openssh: Purging openssh-server after installing 
openssh-server-gssapi deletes data and renders SSH unusable
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1148080: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1148080
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: openssh
Version: 1:10.5p1-1
Severity: serious
Justification: Policy 10.7.4

Hi,

If openssh-server is purged after openssh-server-gssapi is installed,
the postrm script unconditionally removes configuration which it thinks
still belongs to openssh-server, while in fact, openssh-server-gssapi
has become the owner of that configuration. The deleted files involve
the host keys, sshd_config, and systemd unit activation, rendering the SSH
service unusable. openssh-client/openssh-client-gssapi has a similar problem,
although it is less severe.

Initial state:

root@host:/etc# dpkg -l | grep openssh
rc  openssh-client                                1:10.4p1-4                    
           amd64        secure shell (SSH) client, for secure access to remote 
machines
ii  openssh-client-gssapi                         1:10.5p1-1                    
           amd64        secure shell (SSH) client, with GSS-API support
ii  openssh-common                                1:10.5p1-1                    
           amd64        common files for OpenSSH
rc  openssh-server                                1:10.4p1-4                    
           amd64        secure shell (SSH) server, for secure access from 
remote machines
ii  openssh-server-gssapi                         1:10.5p1-1                    
           amd64        secure shell (SSH) server, with GSS-API key exchange
ii  openssh-sftp-server                           1:10.5p1-1                    
           amd64        secure shell (SSH) sftp server module, for SFTP access 
from remote machines
root@host:/etc# dpkg -L openssh-client
/etc
/etc/ssh
root@host:/etc# dpkg -L openssh-server
/etc
/etc/default
/etc/init.d
/etc/pam.d
/etc/ssh
/etc/ssh/sshd_config.d
/etc/sv
/etc/sv/ssh
/etc/sv/ssh/.meta
/etc/sv/ssh/log
/etc/ufw
/etc/ufw/applications.d


Configuration lost after purging openssh-client:

root@host:/etc# dpkg --purge openssh-client
(Reading database… 233916 files and directories currently installed.)
Purging configuration files for openssh-client (1:10.4p1-4)…
root@host:/etc# git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    ssh/moduli
        deleted:    systemd/user/sockets.target.wants/ssh-agent.socket

no changes added to commit (use "git add" and/or "git commit -a")


Configuration lost after purging openssh-server:

root@host:/etc# git restore ssh/moduli 
systemd/user/sockets.target.wants/ssh-agent.socket
root@host:/etc# dpkg --purge openssh-server
(Reading database… 233916 files and directories currently installed.)
Purging configuration files for openssh-server (1:10.4p1-4)…
root@host:/etc# git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    rc2.d/S03ssh
        deleted:    rc3.d/S03ssh
        deleted:    rc4.d/S03ssh
        deleted:    rc5.d/S03ssh
        deleted:    runit/runsvdir/default/ssh
        deleted:    ssh/ssh_host_ed25519_key
        deleted:    ssh/ssh_host_ed25519_key.pub
        deleted:    ssh/ssh_host_rsa_key
        deleted:    ssh/ssh_host_rsa_key.pub
        deleted:    ssh/sshd_config
        deleted:    systemd/system/multi-user.target.wants/ssh.service
        deleted:    systemd/system/ssh.service.wants/sshd-keygen.service
        deleted:    systemd/system/ssh.socket.wants/sshd-keygen.service
        deleted:    systemd/system/sshd.service
        deleted:    systemd/system/sshd.service.wants/sshd-keygen.service
        deleted:    systemd/system/[email protected]/sshd-keygen.service

no changes added to commit (use "git add" and/or "git commit -a")

IMHO the best way to solve this issue would be introducing
openssh-client-common and openssh-server-common packages, and moving all
the common configurationt to those packages.

Regards,
Gabor


-- System Information:
Debian Release: forky/sid
  APT prefers testing
  APT policy: (990, 'testing'), (102, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 7.2.5-gg (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

--- End Message ---
--- Begin Message ---
Source: openssh
Source-Version: 1:10.6p1-1
Done: Colin Watson <[email protected]>

We believe that the bug you reported is fixed in the latest version of
openssh, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Colin Watson <[email protected]> (supplier of updated openssh package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Tue, 06 Oct 2026 18:00:40 +0100
Source: openssh
Architecture: source
Version: 1:10.6p1-1
Distribution: unstable
Urgency: medium
Maintainer: Debian OpenSSH Maintainers <[email protected]>
Changed-By: Colin Watson <[email protected]>
Closes: 1142934 1148080
Changes:
 openssh (1:10.6p1-1) unstable; urgency=medium
 .
   * New upstream release:
     - scp(1): begin deprecating the -R flag, which is used to perform a
       remote-to-remote copy by executing scp on a remote host. This option
       is a fragile optimisation that is difficult to use because it requires
       credentials on the remote host. It also creates security risks if the
       shell quoting rules on the remote system where the copy is performed
       differ from the client's expectations.
 .
       From OpenSSH 10.6, this option will continue to work but will cause a
       deprecation warning to be emitted to standard error. In a future
       release, the option will be ignored and will leave in place the
       default remote-to-remote copy behaviour (copy via the host running
       scp).
     - SECURITY: sftp(1): more strictly validate paths returned from the
       server to avoid some cases where a server could return paths that
       could manipulate a recursive copy operation into writing outside its
       target directory.
     - SECURITY: sshd(8): when GSSAPIAuthentication is in use, only store
       GSSAPI credentials when authentication has succeeded. Avoids a
       situation where credentials from a failed GSSAPIAuthentication attempt
       may persist and be made inappropriately available if another
       authentication subsequently succeeds.
     - SECURITY: sshd(8): reset GSSAPIAuthentication before authentication,
       avoiding state from one authentication attempt being confused with
       that of a later attempt.
     - SECURITY: sshd(8), ssh(1): disable LZ77 dictionary coder to mitigate
       side-channel leaks. A chosen-plaintext attack method exists which
       makes use of dictionary-based compression to recover secrets from one
       channel by interacting with the SSH session's shared compression
       dictionary through another channel.
 .
       Attacker-controlled input can recognizably reflect into the total
       length of transmitted ciphertexts by virtue of LZ77 replacing repeated
       strings with back-references into the SSH session's encoder search
       buffer, which is shared across all channels. For this reason, the
       documentation already recommended against enabling compression for
       connections that share trusted and untrusted traffic.
 .
       This change will reduce the effectiveness of the Compression option.
       Users are encouraged to use application-level compression over the SSH
       protocol where possible, as this will typically be more effective and
       will be completely immune to this type of attack.
     - SECURITY: ssh(1): disallow '$' and '\' characters in usernames entered
       on the command-line to avoid usernames from untrusted sources yielding
       injection in shell context via ProxyCommand, Match exec, etc.
       Usernames specified via the configuration files are not subject to
       this control.
 .
       We continue to recommend against directly exposing ssh(1) and other
       tools' command-lines to untrusted input. Mitigations such as this
       cannot be absolute given the variety of shells and user configurations
       in use.
     - SECURITY: ssh-keygen(1): correct handling of Daylight Saving Time when
       converting dates. Previous handling could cause errors of up to +/- 1
       hour (unless you are in the Antarctica/Troll timezone, where the error
       could be +/- 2 hours). These errors could result in creation of
       certificates with incorrect expiry times.
     - SECURITY: sshd(8), ssh(1): ensure that compressed payloads don't
       inflate past the maximum supported packet length.
     - SECURITY: sshd(8): fully honor the authorized_keys "restrict" keyword,
       which was not being properly applied to tunnel forwarding
       (PermitTunnel, disabled by default).
     - SECURITY: sshd(8): correctly handle some options that accept "none".
       Some options, including AuthorizedPrincipalsFile, were documented as
       accepting "none" as a way to disable them; however, when overridden by
       an sshd_config(5) Match keyword, this argument was being incorrectly
       interpreted as a literal file.
     - All: enable hybrid post-quantum ssh-mldsa44-ed25519 signature
       algorithm. Note that this no longer uses the "@openssh.com" vendor
       extension suffix that the previous experimental implementation used.
       Keys generated with the previous experimental support must be
       regenerated and/or removed.
     - sshd(8): Add the WarnWeakCrypto option to sshd_config(5). This option
       was previously available for the client only. This option is enabled
       by default and will log when the client uses a key agreement scheme
       that is not post-quantum safe.
     - ssh-keygen(1), ssh-add(1): preserve user-verification (PIN or
       biometric) requirement for resident keys loaded from a FIDO token, by
       checking the credential's credProtect policy.
     - ssh(1): include local and remote version strings in the ~I connection
       information display.
     - ssh-add(1): add a -P flag to skip PIN entry for FIDO and PKCS#11
       tokens that do not require it.
     - sftp(1): add '-p' flag for mkdir/lmkdir to create directories as
       required. This flag has similar ergonomics to mkdir(1), and
       previously-existing directories do not cause an error.
     - ssh-keygen(1): add a "hexdump" key export mode that dumps the SSH
       wire-formatted key blob in hex format. Useful when writing
       documentation, tests, etc. E.g. `ssh-keygen -em hexdump -f /key`.
     - ssh(1), sshd(8): ChannelTimeout now accepts timeouts with fractional
       seconds.
     - sshd(8): allow specification of the location of $SSH_AUTH_SOCK used
       for agent forwarding using a new AgentSocketPath option. This supports
       both using a user-specific path, such as the default of a subdirectory
       of $HOME ("user:.ssh/agent"), and the previous approach of allowing
       agent forwarding sockets to be located in a shared directory (e.g.
       "shared:/tmp"). Sockets created in shared directories will be created
       inside a subdirectory with a randomised name.
     - ssh-agent(1): allow specification of agent socket directories using a
       -A flag. It accepts "user:" and "shared:" directory styles similar to
       the sshd AgentSocketPath option.
     - sshd(8): account for public key authentication "key ok" tests
       separately to auth attempts. Add a `PubkeyOptions max-pk-ok:nnnn`
       option to allow a number of PK_OK tests (asking whether the server
       might accept a given public key) that do not count against
       MaxAuthTries, defaulting to 6 attempts. After these attempts are
       exhausted, further attempts count as failed authentications against
       MaxAuthTries. Practically, this allows more keys on disk or held in
       ssh-agent to be checked for use before the server disconnects.
     - ssh(1), sshd(8): extend the existing TCPKeepAlive option to also
       support setting keepalives on sockets created for forwarding
       connections. Previously this option controlled keepalives on the
       connection socket only. TCPKeepAlive "yes" or "transport" enables
       keepalives on the connection socket. "TCPKeepAlive all" additionally
       enables them for forwarding sockets.
     - sshd(8), ssh(1): fix configuration matching on more Turkic languages
       which have disjoint dotted and dotless i/I characters, specifically
       Azerbaijani and Crimean Tatar.
     - ssh(1), sshd(8): don't attempt to set TCP_NODELAY on non-IP/IPv6
       sockets. Eliminates some noise in debug logs.
     - ssh(1): fix case for ssh -G option output.
     - ssh(1), sshd(8): Fix ChannelTimeout specificity; previously a more
       specific channel type (e.g. "session:shell") could clobber a
       user-specified ChannelTimeout if it was less specific (e.g.
       "session").  Also, in some cases, the debug messages were printing 0
       instead of the effective timeout.
     - sftp(1): avoid NULL dereference crash in some circumstances when a
       server fails a stat/lstat operation.
     - sshd(8): close a race condition where a SIGTERM/SIGQUIT would be
       ignored if it was received by the server while it was processing a
       SIGHUP restart request.
     - sshd(8), ssh(1): check key and CA signature types during key parsing
       against allowlists (PubkeyAcceptedAlgorithms, etc) as early as
       possible. This reduces the attack surface presented by disabled
       algorithms.
     - All: switch the fallback implementation of the ed25519 signature
       algorithm used when libcrypto is disabled from SUPERCOP ed25519 to
       libsodium. The libsodium implementation includes a number of
       strictness checks over the original reference implementation we have
       used to this point and a more ergonomic API.
     - ssh-add(1), ssh(1), ssh-keygen(1): fix spin on password entry when the
       program attempting to read a password was started in a background
       process group, with no TTY and with certain signals ignored.
     - scp(1): disallow nul byte in received scp -O filename. This was not
       reachable in normal operation.
     - ssh-keygen(1), ssh(1), sshd(8): implement a maximum number of KDF
       rounds that will be accepted when writing an OpenSSH-format private
       key or when loading one. This limit is set quite high (1M), but
       ensures that a service that is passed a bad key with a ridiculously
       high number of rounds will eventually complete parsing it.
     - ssh-keygen(1): bump the default number of KDF rounds from 24 to 32
       (this is a linear increase, not like bcrypt(3) which is exponential).
     - ssh(1): make StreamLocalBindMask properly respect Host/Match blocks
       and make it first-match-wins as documented.
     - sshd(8): make StreamLocalBindMask properly first-match-wins.
     - sshd(8): don't link sshd against libselinux when SELinux support is
       enabled (note: this library is still linked for the sshd-auth and
       sshd-session helper binaries).
     - sshd(8): restrict mremap(2) flags accepted by the seccomp sandbox.
       Only MREMAP_MAYMOVE is now accepted as other flags may have some
       utility in attack chains.
     - sshd(8): allow PAMServiceName in Match (regressed in 10.4). During the
       refactor of server option parsing, the ability to set PAMServiceName
       in Match blocks was accidentally disabled.
   * Generate MLDSA44-ED25519 host key by default (closes: #1142934).
   * Remove Lintian overrides that now only apply to openssh-gssapi.
   * Remove copyright entry that now only applies to openssh-gssapi.
   * Skip purging if openssh-{client,server}-gssapi is installed (closes:
     #1148080).
Checksums-Sha1:
 ee742c720d4f07f88c6dee5577d75fc03b974303 3372 openssh_10.6p1-1.dsc
 727535880c3bc75aabebe8e04c61eb92e9ae87a9 1653192 openssh_10.6p1.orig.tar.xz
 1e1007ae4aa1a0333161387a89a885c309e37421 189064 openssh_10.6p1-1.debian.tar.xz
 819445b12c8971f578ad94318c6e536897da4517 5589440 openssh_10.6p1-1.git.tar.xz
 5b949e06224b49b05aa1058a3cd458216312f629 17730 
openssh_10.6p1-1_source.buildinfo
Checksums-Sha256:
 3169605230f88ceeeffe12995c18bec6019d0649125326eea442dd76a19015d4 3372 
openssh_10.6p1-1.dsc
 ff8514b95a2c4c8bafe07a87ac93d51bcf47bbe29ccbc185f2f9a9f86fd46c86 1653192 
openssh_10.6p1.orig.tar.xz
 a12ee48c4a26c10473e7b781ce6c2df2228b648e3961fef051374407b50701a1 189064 
openssh_10.6p1-1.debian.tar.xz
 2df9b35db6a80cfea29c27efb42508f77d8517e5b1338bd9cd34870d8459d36c 5589440 
openssh_10.6p1-1.git.tar.xz
 41a617ab2e3d94ae3e701a45a0762f2916fe6b75bcc05cbd32330cd392049500 17730 
openssh_10.6p1-1_source.buildinfo
Files:
 4d7febe26b02a5988341e4d4cab7eaa3 3372 net standard openssh_10.6p1-1.dsc
 7e9bc157bf33ffead0f78861ba54faad 1653192 net standard 
openssh_10.6p1.orig.tar.xz
 8118378fbd8d34cc8fb6f39cb2880519 189064 net standard 
openssh_10.6p1-1.debian.tar.xz
 5840333c762bddca87fcfdc7b6348dbd 5589440 net standard 
openssh_10.6p1-1.git.tar.xz
 8f16ee8c7cdc711c56f575914813f0fb 17730 net standard 
openssh_10.6p1-1_source.buildinfo
Git-Tag-Info: tag=7b582bbe84635fbc51e2197b451e5a1b95f5d4c2 
fp=ac0a4ff12611b6fccf01c111393587d97d86500b
Git-Tag-Tagger: Colin Watson <[email protected]>

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEN02M5NuW6cvUwJcqYG0ITkaDwHkFAmrFKgMACgkQYG0ITkaD
wHkq1RAA3CCTQX/cytAOurZ8oiDkn3HwPkFvygviWfkn/qWUMgaQPdicOl4C7i+K
3QbP38DGS5J9V+cUoCMSo1h9S3LgaeVggzohJasv7CtayB4csr1JsY7nzquQ6gxH
QdLmCK2CnUYPuH/ryle9k49lfKcZEbMWSSzipWEMpl+MxJHiPNe58NY4q7E2Y3m4
Oygii8RGZ4cgDUf+KyQbQBvao2It8EMQWsXIItWSsDaLy5XLcCulWBG44adIQifq
j51ISD5Xojn9vXtR3ZdphoagXrqlHPbXeYOkonBG1w9HZy2myP5Zy9HdmSC/LbGN
+XXdg80u5PzPyrW6FsAvauSSJ4K84vNxNrkLl4jC/dRjHw5AMLWd5T/EJ6HEYZt3
2FTuw0+mYzuO3kAB3c3LYlYXYIL2OYUy3SE20X+/1uS9tse7y0HL/vb2AjIyx9XG
iaEHulRAyHftnRyJaXjO6XcwwZiKTx7pbSoenSQ5L2P6xX5H/Id7e8foAhxQHFN/
rBx3wfr9mqIcy1tD5BZpTCXe01waA7xuAtneB3XX2pEwyqYJvy3XmiCBP04veEnd
YJoSn15e3IIIZ+imrRPQIX7ygU7s6EcWz02xfIOuDLCou8A2INvLOurn5gn3H1c4
ZmThkuaf4RTcKkgYFyppBCuKdXpibW4QOHr++n21lfynEDUQ6oA=
=wfYU
-----END PGP SIGNATURE-----

Attachment: pgpwvQ2leOM9X.pgp
Description: PGP signature


--- End Message ---

Reply via email to