openssh (1:10.2p1-3) unstable; urgency=medium

  * Drop "Rules-Requires-Root: no", default as of dpkg-dev 1.22.13.
  * Drop openssh-server's dependency on lsb-base.
  * Remove support for direct upgrades from before Debian 12 (bookworm).
  * Rewrite scp-quoting.patch using argv_assemble, and forward it upstream.

 -- Colin Watson <cjwatson@debian.org>  Tue, 02 Dec 2025 14:36:37 +0000

openssh (1:10.2p1-2) unstable; urgency=medium

  * ssh-session-cleanup: Update pattern for sshd-session split in 9.8
    (closes: #1117965).
  * Link ssh against ssh-pkcs11.o directly (closes: #1117638, #1117720).

 -- Colin Watson <cjwatson@debian.org>  Fri, 17 Oct 2025 10:14:14 +0100

openssh (1:10.2p1-1) unstable; urgency=medium

  * New upstream release:
    - ssh-keygen(1): fix download of keys from PKCS#11 tokens.

 -- Colin Watson <cjwatson@debian.org>  Fri, 10 Oct 2025 14:50:27 +0100

openssh (1:10.1p1-2) unstable; urgency=medium

  * Don't reuse c->isatty for signalling that the remote channel has a tty
    attached (closes: #1117574, #1117594).
  * Link ssh-keygen directly against ssh-pkcs11.c.

 -- Colin Watson <cjwatson@debian.org>  Thu, 09 Oct 2025 00:54:25 +0100

openssh (1:10.1p1-1) unstable; urgency=medium

  [ Allison Karlitskaya ]
  * sshd@.service: Support ephemeral keys from VM/container hosts.

  [ Colin Watson ]
  * New upstream release:
    - ssh(1): add a warning when the connection negotiates a non-post
      quantum key agreement algorithm.
    - ssh(1), sshd(8): major changes to handling of DSCP marking/IPQoS: by
      default, interactive traffic is assigned to the EF (Expedited
      Forwarding) class, while non-interactive traffic uses the operating
      system default DSCP marking.
    - ssh(1), sshd(8): deprecate support for IPv4 type-of-service (ToS)
      keywords in the IPQoS configuration directive.
    - ssh-add(1): when adding certificates to an agent, set the expiry to
      the certificate expiry time plus a short (5 min) grace period.
    - All: remove experimental support for XMSS keys.
    - ssh-agent(1), sshd(8): move agent listener sockets from /tmp to under
      ~/.ssh/agent for both ssh-agent(1) and forwarded sockets in sshd(8).
    - CVE-2025-61984: ssh(1): disallow control characters in usernames
      passed via the commandline or expanded using %-sequences from the
      configuration file (closes: #1117529),
    - CVE-2025-61985: ssh(1): disallow \0 characters in ssh:// URIs (closes:
      #1117530).
    - ssh(1), sshd(8): add SIGINFO handlers to log active channel and
      session information.
    - sshd(8): when refusing a certificate for user authentication, log
      enough information to identify the certificate in addition to the
      reason why it was being denied. Makes debugging certificate
      authorisation problems a bit easier.
    - ssh(1), ssh-agent(1): support ed25519 keys hosted on PKCS#11 tokens.
    - ssh(1): add an ssh_config(5) RefuseConnection option that, when
      encountered while processing an active section in a configuration,
      terminates ssh(1) with an error message that contains the argument to
      the option.
    - sshd(8): make the X11 display number check relative to
      X11DisplayOffset. This will allow people to use X11DisplayOffset to
      configure much higher port ranges if they really want, while not
      changing the default behaviour.
    - ssh(1): fix delay on X client startup when ObscureKeystrokeTiming is
      enabled.
    - sshd(8): increase the maximum size of the supported configuration from
      256KB to 4MB, which ought to be enough for anybody. Fail early and
      visibly when this limit is breached.
    - sftp(1): during sftp uploads, avoid a condition where a failed write
      could be ignored if a subsequent write succeeded. This is unlikely but
      technically possible because sftp servers are allowed to reorder
      requests.
    - sshd(8): avoid a race condition when the sshd-auth process exits that
      could cause a spurious error message to be logged.
    - sshd(8): log at level INFO when PerSourcePenalties actually blocks
      access to a source address range. Previously this was logged at level
      VERBOSE, which hid enforcement actions under default config settings.
    - sshd(8): Make the MaxStartups and PerSourceNetBlockSize options
      first-match-wins as advertised.
    - ssh(1): fix an incorrect return value check in the local forward
      cancellation path that would cause failed cancellations not to be
      logged.
    - sshd(8): make "Match !final" not trigger a second parsing pass of
      ssh_config (unless hostname canonicalisation or a separate "Match
      final" does).
    - ssh(1): better debug diagnostics when loading keys. Will now list key
      fingerprint and algorithm (not just algorithm number) as well as
      making it explicit which keys didn't load.
    - All: fix a number of memory leaks found by LeakSanitizer, Coverity and
      manual inspection.
    - sshd(8): Output the current name for PermitRootLogin's
      "prohibit-password" in sshd -T instead of its deprecated alias
      "without-password" (closes: #1095922).
    - ssh(1): make writing known_hosts lines more atomic by writing the
      entire line in one operation and using unbuffered stdio.
    - sshd(8): check the username didn't change during the PAM transactions.
    - sshd(8): don't log audit messages with UNKNOWN hostname to avoid slow
      DNS lookups in the audit subsystem.
    - All: when making a copy of struct passwd, ensure struct fields are
      non-NULL.
    - sshd(8): handle futex_time64 properly in seccomp sandbox.
    - Add contrib/gnome-ssh-askpass4 for GNOME 40+ using the GCR API.
    - ssh-agent(1): exit 0 from SIGTERM under systemd socket-activation,
      preventing a graceful shutdown of an agent via systemd from
      incorrectly marking the service as "failed".
  * Drop patches:
    - no-openssl-version-status.patch: Mostly applied upstream; the rest
      only applied to OpenSSL < 3, which isn't relevant to current Debian
      releases.
    - revert-ipqos-defaults.patch: This new upstream release reworks IPQoS,
      so let's see how that works in Debian (closes: #1111446).
  * debian/run-tests: Fix path to dropbear.

 -- Colin Watson <cjwatson@debian.org>  Tue, 07 Oct 2025 22:07:19 +0100

openssh (1:10.0p1-8) unstable; urgency=medium

  * Remove some long-obsolete Conflicts (closes: #54243).
  * Fix mistracking of MaxStartups process exits in some situations (closes:
    #1080350).

 -- Colin Watson <cjwatson@debian.org>  Sun, 10 Aug 2025 00:07:55 +0100

openssh (1:10.0p1-7) unstable; urgency=medium

  * Make postinst logic for cleaning up the sshd diversion more robust.

 -- Colin Watson <cjwatson@debian.org>  Fri, 01 Aug 2025 16:02:27 +0100

openssh (1:10.0p1-6) unstable; urgency=medium

  * Temporarily divert /usr/sbin/sshd during upgrades from before
    1:9.8p1-1~, to avoid new connections failing between unpack and
    configure (closes: #1109742).

 -- Colin Watson <cjwatson@debian.org>  Mon, 28 Jul 2025 12:17:42 +0100

openssh (1:10.0p1-5) unstable; urgency=medium

  * Ensure that configure knows the path to passwd; fixes reproducibility of
    openssh-tests.

 -- Colin Watson <cjwatson@debian.org>  Fri, 09 May 2025 13:40:49 +0100

openssh (1:10.0p1-4) unstable; urgency=medium

  [ Daniel Kahn Gillmor ]
  * Add Requires=ssh-agent.socket to ssh-agent.service (closes: #1103522).

 -- Colin Watson <cjwatson@debian.org>  Fri, 09 May 2025 10:16:45 +0100

openssh (1:10.0p1-3) unstable; urgency=medium

  * Disable --with-linux-memlock-onfault again, since it causes
    RLIMIT_MEMLOCK to be exceeded with some combinations of PAM modules
    (closes: #1103418).

 -- Colin Watson <cjwatson@debian.org>  Wed, 07 May 2025 16:18:43 +0100

openssh (1:10.0p1-2) unstable; urgency=medium

  [ Colin Watson ]
  * Disable --with-linux-memlock-onfault on riscv64.
  * Build with wtmpdb (see #1102643).
  * Stop writing /var/log/btmp, since nothing reads it any more (closes:
    #1072184).
  * Restore some rdomain references in sshd_config(5) where they're
    supported on Linux, referring to ip-vrf(8) (closes: #1095686).

  [ Daniel Kahn Gillmor ]
  * Improve systemd user service socket activation (closes: #961311,
    #1039919, #1103037).

  [ Luca Boccassi ]
  * Switch from adduser to sysusers.d.
  * Add sshd-keygen service.

 -- Colin Watson <cjwatson@debian.org>  Tue, 15 Apr 2025 14:19:35 +0100

openssh (1:10.0p1-1) unstable; urgency=medium

  [ Luca Boccassi ]
  * Add COLORTERM NO_COLOR to SendEnv and AcceptEnv.

  [ Colin Watson ]
  * New upstream release:
    - This release removes support for the weak DSA signature algorithm.
    - scp(1), sftp(1): pass "ControlMaster no" to ssh when invoked by scp &
      sftp.
    - This release has the version number 10.0 and announces itself as
      "SSH-2.0-OpenSSH_10.0". Software that naively matches versions using
      patterns like "OpenSSH_1*" may be confused by this.
    - sshd(8): this release removes the code responsible for the user
      authentication phase of the protocol from the per-connection
      sshd-session binary to a new sshd-auth binary. Splitting this code
      into a separate binary ensures that the crucial pre-authentication
      attack surface has an entirely disjoint address space from the code
      used for the rest of the connection. It also yields a small runtime
      memory saving as the authentication code will be unloaded after the
      authentication phase completes. This change should be largely
      invisible to users, though some log messages may now come from
      "sshd-auth" instead of "sshd-session".
    - sshd(8): this release disables finite field (a.k.a modp)
      Diffie-Hellman key exchange in sshd by default. Specifically, this
      removes the "diffie-hellman-group*" and
      "diffie-hellman-group-exchange-*" methods from the default
      KEXAlgorithms list. The client is unchanged and continues to support
      these methods by default.
    - sshd(8): this release removes the implicit fallback to compiled-in
      groups for Diffie-Hellman Group Exchange KEX when the moduli file
      exists but does not contain moduli within the client-requested range.
      The fallback behaviour remains for the case where the moduli file does
      not exist at all. This allows administrators more explicit control
      over which DH groups will be selected, but can lead to connection
      failures if the moduli file is edited incorrectly.
    - CVE-2025-32728: sshd(8): fix the DisableForwarding directive, which
      was failing to disable X11 forwarding and agent forwarding as
      documented (closes: #1102603). X11 forwarding is disabled by default
      in the server and agent forwarding is off by default in the client.
    - ssh(1): the hybrid post-quantum algorithm mlkem768x25519-sha256 is now
      used by default for key agreement. This algorithm is considered to be
      safe against attack by quantum computers, is guaranteed to be no less
      strong than the popular curve25519-sha256 algorithm, has been
      standardised by NIST and is considerably faster than the previous
      default.
    - ssh(1): prefer AES-GCM to AES-CTR mode when selecting a cipher for the
      connection. The default cipher preference list is now
      Chacha20/Poly1305, AES-GCM (128/256) followed by AES-CTR
      (128/192/256).
    - ssh(1): add %-token and environment variable expansion to the
      ssh_config SetEnv directive.
    - ssh(1): allow %-token and environment variable expansion in the
      ssh_config User directive, with the exception of %r and %C which would
      be self-referential.
    - ssh(1), sshd(8): add "Match version" support to ssh_config and
      sshd_config. Allows matching on the local version of OpenSSH, e.g.
      "Match version OpenSSH_10.*".
    - ssh(1): add support for "Match sessiontype" to ssh_config. Allows
      matching on the type of session initially requested, either "shell"
      for interactive sessions, "exec" for command execution sessions,
      "subsystem" for subsystem requests, such as sftp, or "none" for
      transport/forwarding-only sessions.
    - ssh(1): add support for "Match command ..." support to ssh_config,
      allowing matching on the remote command as specified on the
      command-line.
    - ssh(1): allow 'Match tagged ""' and 'Match command ""' to match empty
      tag and command values respectively.
    - sshd(8): allow glob(3) patterns to be used in sshd_config
      AuthorizedKeysFile and AuthorizedPrincipalsFile directives.
    - sshd(1): support the VersionAddendum in the client, mirroring the
      option of the same name in the server.
    - ssh-agent(1): the agent will now delete all loaded keys when signaled
      with SIGUSR1. This allows deletion of keys without having access to
      $SSH_AUTH_SOCK.
    - Portable OpenSSH, ssh-agent(1): support systemd-style socket
      activation in ssh-agent using the LISTEN_PID/LISTEN_FDS mechanism.
      Activated when these environment variables are set, the agent is
      started with the -d or -D option and no socket path is set.
    - ssh-keygen(1): support FIDO tokens that return no attestation data,
      e.g. recent WinHello.
    - ssh-agent(1): add a "-Owebsafe-allow=..." option to allow the default
      FIDO application ID allow-list to be overridden.
    - ssh-keygen(1): allow "-" as output file for moduli screening.
    - sshd(8): remove assumption that the sshd_config and any configs it
      includes can fit in a (possibly enlarged) socket buffer. Previously it
      was possible to create a sufficiently large configuration that could
      cause sshd to fail to accept any connection. sshd(8) will now actively
      manage sending its config to the sshd-session sub-process.
    - ssh(1): don't start the ObscureKeystrokeTiming mitigations if there
      has been traffic on a X11 forwarding channel recently. Should fix X11
      forwarding performance problems when this setting is enabled.
    - ssh(1): prohibit the comma character in hostnames accepted, but allow
      an underscore as the first character in a hostname.
    - sftp(1): set high-water when resuming a "put". Prevents bogus "server
      reordered acks" debug message.
    - ssh(1), sshd(8): fix regression in openssh-9.8, which would fail to
      accept "Match criteria=argument" as well as the documented "Match
      criteria argument" syntax in ssh_config and sshd_config.
    - sftp(1), ssh(1): fix a number of possible NULL dereference bugs,
      including Coverity CIDs 405019 and 477813.
    - sshd(8): fix PerSourcePenalty incorrectly using "crash" penalty when
      LoginGraceTime was exceeded.
    - sshd(8): fix "Match invalid-user" from incorrectly being activated in
      initial configuration pass when no other predicates were present on
      the match line.
    - sshd(8): fix debug logging of user specific delay.
    - sshd(8): improve debug logging across sub-process boundaries.
      Previously some log messages were lost early in the sshd-auth and
      sshd-session processes' life.
    - ssh(1): require control-escape character sequences passed via the '-e
      ^x' command-line to be exactly two characters long. Avoids one byte
      out-of-bounds read if ssh is invoked as "ssh -e^ ...".
    - ssh(1), sshd(8): prevent integer overflow in x11 port handling. These
      are theoretically possible if the admin misconfigured X11DisplayOffset
      or the user misconfigures their own $DISPLAY, but don't happen in
      normal operation.
    - ssh-keygen(1): don't mess up ssh-keygen -l output when the file
      contains CR characters.
    - sshd(8): add rate limits to logging of connections dropped by
      PerSourcePenalties. Previously these could be noisy in logs.
    - ssh(1): fix argument of "Compression" directive in ssh -G config dump,
      which regressed in openssh-9.8.
    - sshd(8): fix a corner-case triggered by UpdateHostKeys when sshd
      refuses to accept the signature returned by an agent holding host keys
      during the hostkey rotation sub-protocol. This situation could occur
      in situations where a PKCS#11 smartcard that lacked support for
      particular signature algorithms was used to store host keys.
    - ssh-keygen(1): when using RSA keys to sign messages with "ssh-keygen
      -Y", select the signature algorithm based on the requested hash
      algorithm ("-Ohashalg=xxx"). This allows using something other than
      the default of rsa-sha2-512, which may not be supported on all signing
      backends, e.g. some smartcards only support SHA256.
    - sshd(8): add wtmpdb support as a Y2038 safe wtmp replacement.
    - sshd(8): add support for locking sshd into memory, enabled with the
      --with-linux-memlock-onfault configure flag.
  * Configure --with-linux-memlock-onfault on Linux.

 -- Colin Watson <cjwatson@debian.org>  Fri, 11 Apr 2025 16:00:55 +0100

openssh (1:9.9p2-2) unstable; urgency=medium

  * Simplify most autopkgtests using needs-sudo restriction.
  * Remove obsolete slogin symlink (closes: #1098760).
  * Check if dbclient supports SHA1 before trying SHA1-based KEX (closes:
    #1100948).

 -- Colin Watson <cjwatson@debian.org>  Thu, 20 Mar 2025 23:12:58 +0000

openssh (1:9.9p2-1) unstable; urgency=medium

  * New upstream release:
    - CVE-2025-26465: ssh(1) in OpenSSH versions 6.8p1 to 9.9p1 (inclusive)
      contained a logic error that allowed an on-path attacker (a.k.a MITM)
      to impersonate any server when the VerifyHostKeyDNS option is enabled.
      This option is off by default.
    - CVE-2025-26466: sshd(8) in OpenSSH versions 9.5p1 to 9.9p1 (inclusive)
      is vulnerable to a memory/CPU denial-of-service related to the
      handling of SSH2_MSG_PING packets. This condition may be mitigated
      using the existing PerSourcePenalties feature.
    - ssh(1), sshd(8): fix regression in Match directive that caused
      failures when predicates and their arguments were separated by '='
      characters instead of whitespace (bz3739).
    - sshd(8): fix the "Match invalid-user" predicate, which was matching
      incorrectly in the initial pass of config evaluation.

 -- Colin Watson <cjwatson@debian.org>  Tue, 18 Feb 2025 10:13:10 +0000

openssh (1:9.9p1-3) unstable; urgency=medium

  * Fix mlkem768x25519-sha256 key exchange algorithm on big-endian
    architectures.
  * Drop patch to define MAXHOSTNAMELEN on GNU/Hurd (no longer needed).

 -- Colin Watson <cjwatson@debian.org>  Sun, 27 Oct 2024 13:58:04 +0000

openssh (1:9.9p1-2) unstable; urgency=medium

  * Don't prefer host-bound public key signatures if there was no initial
    host key, as is the case when using GSS-API key exchange (closes:
    #1041521).
  * Use runuser rather than sudo in autopkgtests where possible, avoiding a
    dependency.

 -- Colin Watson <cjwatson@debian.org>  Mon, 21 Oct 2024 18:24:07 +0100

openssh (1:9.9p1-1) unstable; urgency=medium

  * Alias the old Debian-specific SetupTimeOut client option to
    ConnectTimeout rather than to ServerAliveInterval.
  * New upstream release (https://www.openssh.com/releasenotes.html#9.9p1):
    - ssh(1): remove support for pre-authentication compression.
    - ssh(1), sshd(8): processing of the arguments to the "Match"
      configuration directive now follows more shell-like rules for quoted
      strings, including allowing nested quotes and \-escaped characters.
    - ssh(1), sshd(8): add support for a new hybrid post-quantum key
      exchange based on the FIPS 203 Module-Lattice Key Enapsulation
      mechanism (ML-KEM) combined with X25519 ECDH as described by
      https://datatracker.ietf.org/doc/html/draft-kampanakis-curdle-ssh-pq-ke-03
      This algorithm "mlkem768x25519-sha256" is available by default.
    - ssh(1): the ssh_config "Include" directive can now expand environment
      as well as the same set of %-tokens "Match Exec" supports.
    - sshd(8): add a sshd_config "RefuseConnection" option that, if set will
      terminate the connection at the first authentication request.
    - sshd(8): add a "refuseconnection" penalty class to sshd_config
      PerSourcePenalties that is applied when a connection is dropped by the
      new RefuseConnection keyword.
    - sshd(8): add a "Match invalid-user" predicate to sshd_config Match
      options that matches when the target username is not valid on the
      server.
    - ssh(1), sshd(8): update the Streamlined NTRUPrime code to a
      substantially faster implementation.
    - ssh(1), sshd(8): the hybrid Streamlined NTRUPrime/X25519 key exchange
      algorithm now has an IANA-assigned name in addition to the
      "@openssh.com" vendor extension name. This algorithm is now also
      available under this name "sntrup761x25519-sha512"
    - ssh(1), sshd(8), ssh-agent(1): prevent private keys from being
      included in core dump files for most of their lifespans. This is in
      addition to pre-existing controls in ssh-agent(1) and sshd(8) that
      prevented coredumps.
    - All: convert key handling to use the libcrypto EVP_PKEY API, with the
      exception of DSA.
    - sshd(8): add a random amount of jitter (up to 4 seconds) to the grace
      login time to make its expiry unpredictable.
    - sshd(8): fix regression introduced in openssh-9.8 that swapped the
      order of source and destination addresses in some sshd log messages.
    - sshd(8): do not apply authorized_keys options when signature
      verification fails. Prevents more restrictive key options being
      incorrectly applied to subsequent keys in authorized_keys.
    - ssh-keygen(1): include pathname in some of ssh-keygen's passphrase
      prompts. Helps the user know what's going on when ssh-keygen is
      invoked via other tools.
    - ssh(1), ssh-add(1): make parsing user@host consistently look for the
      last '@' in the string rather than the first. This makes it possible
      to more consistently use usernames that contain '@' characters.
    - ssh(1), sshd(8): be more strict in parsing key type names. Only allow
      short names (e.g "rsa") in user-interface code and require full SSH
      protocol names (e.g. "ssh-rsa") everywhere else.
    - regress: many performance and correctness improvements to the
      re-keying regression test.
    - ssh-keygen(1): clarify that ed25519 is the default key type generated
      and clarify that rsa-sha2-512 is the default signature scheme when RSA
      is in use.
    - sshd(8): fix minor memory leak in Subsystem option parsing.
    - All: additional hardening and consistency checks for the sshbuf code.
    - sshd(8): reduce default logingrace penalty to ensure that a single
      forgotten login that times out will be below the penalty threshold.
    - ssh(1): fix proxy multiplexing (-O proxy) bug. If a mux started with
      ControlPersist then later has a forwarding added using mux proxy
      connection and the forwarding was used, then when the mux proxy
      session terminated, the mux master process would issue a bad message
      that terminated the connection.
    - Sync contrib/ssh-copy-id to the latest upstream version.
    - sshd(8): restore audit call before exit that regressed in openssh-9.8.
      Fixes an issue where the SSH_CONNECTION_ABANDON event was not
      recorded.
    - Fix detection of setres*id on GNU/Hurd.

 -- Colin Watson <cjwatson@debian.org>  Mon, 23 Sep 2024 21:09:59 -0700

openssh (1:9.8p1-8) unstable; urgency=medium

  * Source-only reupload.

 -- Colin Watson <cjwatson@debian.org>  Fri, 30 Aug 2024 00:38:26 +0100

openssh (1:9.8p1-7) unstable; urgency=medium

  * Adjust description line-wrapping so that lintian recognizes that
    openssh-client-gssapi is an intentionally empty package.

 -- Colin Watson <cjwatson@debian.org>  Thu, 29 Aug 2024 14:17:13 +0100

openssh (1:9.8p1-6) unstable; urgency=medium

  * Upload with binaries to satisfy Debian archive NEW checks.

 -- Colin Watson <cjwatson@debian.org>  Thu, 29 Aug 2024 13:46:57 +0100

openssh (1:9.8p1-5) unstable; urgency=medium

  * Add openssh-client-gssapi and openssh-server-gssapi packages; these
    currently just depend on their non-gssapi counterparts, but will become
    different in future.  See
    https://lists.debian.org/debian-devel/2024/04/msg00044.html.

 -- Colin Watson <cjwatson@debian.org>  Thu, 29 Aug 2024 12:53:42 +0100

openssh (1:9.8p1-4) unstable; urgency=medium

  [ Grzegorz Szymaszek ]
  * Disable listening on 22 in the port change example in README.Debian.

  [ Colin Watson ]
  * sshd: Allow exec without absolute path in inetd mode (closes: #1078429).
  * Add an autopkgtest for running sshd from xinetd.

 -- Colin Watson <cjwatson@debian.org>  Mon, 26 Aug 2024 15:02:45 +0100

openssh (1:9.8p1-3) unstable; urgency=medium

  [ Dirk Van Haerenborgh ]
  * Add sshd-session to openssh-server-udeb.

 -- Colin Watson <cjwatson@debian.org>  Tue, 06 Aug 2024 12:58:46 +0100

openssh (1:9.8p1-2) unstable; urgency=medium

  * Don't close sockets passed by systemd socket activation (closes:
    #1077765).
  * Add an autopkgtest for socket activation.
  * Consult /etc/hosts.{allow,deny} as "sshd", not "sshd-session" (closes:
    #1077799).

 -- Colin Watson <cjwatson@debian.org>  Fri, 02 Aug 2024 17:08:58 +0100

openssh (1:9.8p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/releasenotes.html#9.8p1):
    - CVE-2024-39894: Fix Logic error in ssh(1) ObscureKeystrokeTiming that
      made the feature ineffective.
    - The DSA signature algorithm is now disabled at compile-time.
    - sshd(8): the server has been split into a listener binary, sshd(8),
      and a per-session binary "sshd-session".  This allows for a much
      smaller listener binary, as it no longer needs to support the SSH
      protocol.  As part of this work, support for disabling privilege
      separation (which previously required code changes to disable) and
      disabling re-execution of sshd(8) has been removed.  Further
      separation of sshd-session into additional, minimal binaries is
      planned for the future.
    - sshd(8): several log messages have changed.  In particular, some log
      messages will be tagged with as originating from a process named
      "sshd-session" rather than "sshd".
    - ssh-keyscan(1): this tool previously emitted comment lines containing
      the hostname and SSH protocol banner to standard error.  This release
      now emits them to standard output, but adds a new "-q" flag to silence
      them altogether.
    - sshd(8): sshd will no longer use argv[0] as the PAM service name.  A
      new "PAMServiceName" sshd_config(5) directive allows selecting the
      service name at runtime.  This defaults to "sshd".
    - sshd(8): penalise client addresses that, for various reasons, do not
      successfully complete authentication.  This feature is controlled by a
      new sshd_config(5) PerSourcePenalties option and is on by default.
    - ssh(8): allow the HostkeyAlgorithms directive to disable the implicit
      fallback from certificate host key to plain host keys.
    - misc: fix a number of inaccuracies in the PROTOCOL.* documentation
      files.
    - all: switch to strtonum(3) for more robust integer parsing in most
      places.
    - ssh(1), sshd(8): correctly restore sigprocmask around ppoll().
    - ssh-keysign(8): stricter validation of messaging socket fd.
    - sftp(1): flush stdout after writing "sftp>" prompt when not using
      editline.
    - sftp-server(8): fix home-directory extension implementation, it
      previously always returned the current user's home directory contrary
      to the spec.
    - ssh-keyscan(1): do not close stdin to prevent error messages when
      stdin is read multiple times.
    - regression tests: fix rekey test that was testing the same KEX
      algorithm repeatedly instead of testing all of them.
    - ssh_config(5), sshd_config(5): clarify the KEXAlgorithms directive
      documentation, especially around what is supported vs available
      (closes: #1073065).
    - sshd(8): expose SSH_AUTH_INFO_0 always to PAM auth modules
      unconditionally. The previous behaviour was to expose it only when
      particular authentication methods were in use.
    - build: fix OpenSSL ED25519 support detection. An incorrect function
      signature in configure.ac previously prevented enabling the recently
      added support for ED25519 private keys in PEM PKCS8 format.
    - ssh(1), ssh-agent(8): allow the presence of the WAYLAND_DISPLAY
      environment variable to enable SSH_ASKPASS, similarly to the X11
      DISPLAY environment variable (closes: #1037515, #1068044).
  * Stop generating DSA host key.
  * Apply X-Style: black.

 -- Colin Watson <cjwatson@debian.org>  Wed, 31 Jul 2024 17:16:04 +0100

openssh (1:9.7p1-7) unstable; urgency=critical

  [ Salvatore Bonaccorso ]
  * Disable async-signal-unsafe code from the sshsigdie() function.  This is
    a minimal workaround for a regression from CVE-2006-5051.

 -- Colin Watson <cjwatson@debian.org>  Mon, 01 Jul 2024 10:11:27 +0100

openssh (1:9.7p1-6) unstable; urgency=medium

  * Stop reading ~/.pam_environment, which has a history of security
    problems and is deprecated by PAM upstream (closes: #1018260).

 -- Colin Watson <cjwatson@debian.org>  Tue, 25 Jun 2024 14:20:44 +0100

openssh (1:9.7p1-5) unstable; urgency=medium

  [ Colin Watson ]
  * Add "After=nss-user-lookup.target" to ssh.service and sshd@.service
    (closes: #1069706).
  * Avoid cleanup of /tmp/sshauth.*, created by sshd if ExposeAuthInfo is
    set.

  [ Andreas Hasenack ]
  * Add autopkgtests for GSSAPI logins, including gssapi-keyex.

  [ Luca Boccassi ]
  * Install tmpfiles.d to avoid cleanup of ssh-agent socket in /tmp/
    (closes: #1070725).
  * Only set PAM_RHOST if the remote host is not "UNKNOWN" (thanks, Daan De
    Meyer).

 -- Colin Watson <cjwatson@debian.org>  Thu, 16 May 2024 11:16:30 +0100

openssh (1:9.7p1-4) unstable; urgency=medium

  * Rework systemd readiness notification and socket activation patches to
    not link against libsystemd (the former via an upstream patch).
  * Force -fzero-call-used-regs=used not to be used on ppc64el (it's
    unsupported, but configure fails to detect this).

 -- Colin Watson <cjwatson@debian.org>  Wed, 03 Apr 2024 12:06:08 +0100

openssh (1:9.7p1-3) unstable; urgency=medium

  * Fix gssapi-keyex declaration further (thanks, Andreas Hasenack;
    LP: #2053146).
  * Extend -fzero-call-used-regs check to catch m68k gcc bug (closes:
    #1067243).
  * debian/tests/regress: Set a different IP address for UNKNOWN.
  * Re-enable ssh-askpass-gnome on all architectures.
  * regress: Redirect conch stdin from /dev/zero (re-enables conch interop
    tests).
  * Drop "Work around RSA SHA-2 signature issues in conch" patch (no longer
    needed now that Twisted is fixed).

 -- Colin Watson <cjwatson@debian.org>  Sun, 31 Mar 2024 11:55:38 +0100

openssh (1:9.7p1-2) unstable; urgency=medium

  [ Simon McVittie ]
  * d/control, d/rules: Disable ssh-askpass-gnome on 32-bit, except i386
    (closes: #1066847).

 -- Colin Watson <cjwatson@debian.org>  Thu, 14 Mar 2024 11:45:12 +0000

openssh (1:9.7p1-1) unstable; urgency=medium

  * Add the isolation-container restriction to the "regress" autopkgtest.
    Our setup code wants to ensure that the haveged service is running, and
    furthermore at least the agent-subprocess test assumes that there's an
    init to reap zombie processes and doesn't work in (e.g.)
    autopkgtest-virt-unshare.
  * New upstream release (https://www.openssh.com/releasenotes.html#9.7p1):
    - ssh(1), sshd(8): add a "global" ChannelTimeout type that watches all
      open channels and will close all open channels if there is no traffic
      on any of them for the specified interval. This is in addition to the
      existing per-channel timeouts added recently.
      This supports situations like having both session and x11 forwarding
      channels open where one may be idle for an extended period but the
      other is actively used. The global timeout could close both channels
      when both have been idle for too long (closes: #165185).
    - All: make DSA key support compile-time optional, defaulting to on.
    - sshd(8): don't append an unnecessary space to the end of subsystem
      arguments (bz3667)
    - ssh(1): fix the multiplexing "channel proxy" mode, broken when
      keystroke timing obfuscation was added. (GHPR#463)
    - ssh(1), sshd(8): fix spurious configuration parsing errors when
      options that accept array arguments are overridden (bz3657).
    - ssh-agent(1): fix potential spin in signal handler (bz3670)
    - Many fixes to manual pages and other documentation.
    - Greatly improve interop testing against PuTTY.
  * Skip utimensat test on ZFS, since it seems to leave the atime set to 0.
  * Allow passing extra options to debian/tests/regress, for debugging.
  * Fix gssapi-keyex declaration, broken when rebasing onto 8.9p1
    (LP: #2053146).

 -- Colin Watson <cjwatson@debian.org>  Thu, 14 Mar 2024 10:47:58 +0000

openssh (1:9.6p1-5) unstable; urgency=medium

  * Restore systemd template unit for per-connection sshd instances,
    although without any corresponding .socket unit for now; this is mainly
    for use with the forthcoming systemd-ssh-generator (closes: #1061516).
    It's now called sshd@.service, since unlike the main service there's no
    need to be concerned about compatibility with the slightly confusing
    "ssh" service name that Debian has traditionally used.

 -- Colin Watson <cjwatson@debian.org>  Wed, 06 Mar 2024 09:45:56 +0000

openssh (1:9.6p1-4) unstable; urgency=medium

  * Add sshd_config checksums for 1:9.2p1-1 to ucf reference file, and add a
    test to ensure it doesn't get out of date again.
  * Drop manual adjustment of OpenSSL dependencies; OpenSSH relaxed its
    checks for OpenSSL >= 3 in 9.4p1.
  * Build-depend on pkgconf rather than pkg-config.
  * Adjust debian/copyright to handle the "placed in the public domain"
    status of rijndael.* more explicitly.

 -- Colin Watson <cjwatson@debian.org>  Mon, 26 Feb 2024 12:26:57 +0000

openssh (1:9.6p1-3) unstable; urgency=medium

  * Allow passing extra ssh-agent arguments via
    "/usr/lib/openssh/agent-launch start", making it possible to override
    things like identity lifetime using a systemd drop-in unit (closes:
    #1059639).
  * Don't try to start rescue-ssh.target in postinst (LP: #2047082).

 -- Colin Watson <cjwatson@debian.org>  Wed, 17 Jan 2024 22:50:07 +0000

openssh (1:9.6p1-2) unstable; urgency=medium

  * Improve detection of broken -fzero-call-used-regs=used (see
    https://bugzilla.mindrot.org/show_bug.cgi?id=3645; fixes build on
    ppc64/ppc64el).

 -- Colin Watson <cjwatson@debian.org>  Thu, 21 Dec 2023 16:07:34 +0000

openssh (1:9.6p1-1) unstable; urgency=medium

  * Use single quotes in suggested ssh-keygen commands (closes: #1057835).
  * Debconf translations:
    - Catalan (thanks, Pablo Huguet; closes: #1049995).
  * New upstream release (https://www.openssh.com/releasenotes.html#9.6p1):
    - [CVE-2023-48795] ssh(1), sshd(8): implement protocol extensions to
      thwart the so-called "Terrapin attack" discovered by Fabian Bäumer,
      Marcus Brinkmann and Jörg Schwenk. This attack allows a MITM to effect
      a limited break of the integrity of the early encrypted SSH transport
      protocol by sending extra messages prior to the commencement of
      encryption, and deleting an equal number of consecutive messages
      immediately after encryption starts. A peer SSH client/server would
      not be able to detect that messages were deleted.
    - [CVE-2023-51384] ssh-agent(1): when adding PKCS#11-hosted private keys
      while specifying destination constraints, if the PKCS#11 token
      returned multiple keys then only the first key had the constraints
      applied. Use of regular private keys, FIDO tokens and unconstrained
      keys are unaffected.
    - [CVE-2023-51385] ssh(1): if an invalid user or hostname that contained
      shell metacharacters was passed to ssh(1), and a ProxyCommand,
      LocalCommand directive or "match exec" predicate referenced the user
      or hostname via %u, %h or similar expansion token, then an attacker
      who could supply arbitrary user/hostnames to ssh(1) could potentially
      perform command injection depending on what quoting was present in the
      user-supplied ssh_config(5) directive. OpenSSH 9.6 now bans most shell
      metacharacters from user and hostnames supplied via the command-line.
    - ssh(1), sshd(8): the RFC4254 connection/channels protocol provides a
      TCP-like window mechanism that limits the amount of data that can be
      sent without acceptance from the peer. In cases where this limit was
      exceeded by a non-conforming peer SSH implementation, ssh(1)/sshd(8)
      previously discarded the extra data. From OpenSSH 9.6, ssh(1)/sshd(8)
      will now terminate the connection if a peer exceeds the window limit
      by more than a small grace factor. This change should have no effect
      of SSH implementations that follow the specification.
    - ssh(1): add a %j token that expands to the configured ProxyJump
      hostname (or the empty string if this option is not being used) that
      can be used in a number of ssh_config(5) keywords.
    - ssh(1): add ChannelTimeout support to the client, mirroring the same
      option in the server and allowing ssh(1) to terminate quiescent
      channels.
    - ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): add support for reading
      ED25519 private keys in PEM PKCS8 format. Previously only the OpenSSH
      private key format was supported.
    - ssh(1), sshd(8): introduce a protocol extension to allow renegotiation
      of acceptable signature algorithms for public key authentication after
      the server has learned the username being used for authentication.
      This allows varying sshd_config(5) PubkeyAcceptedAlgorithms in a
      "Match user" block.
    - ssh-add(1), ssh-agent(1): add an agent protocol extension to allow
      specifying certificates when loading PKCS#11 keys. This allows the use
      of certificates backed by PKCS#11 private keys in all OpenSSH tools
      that support ssh-agent(1). Previously only ssh(1) supported this
      use-case.
    - ssh(1): when deciding whether to enable the keystroke timing
      obfuscation, enable it only if a channel with a TTY is active.
    - ssh(1): switch mainloop from poll(3) to ppoll(3) and mask signals
      before checking flags set in signal handler. Avoids potential race
      condition between signaling ssh to exit and polling.
    - ssh(1): when connecting to a destination with both the AddressFamily
      and CanonicalizeHostname directives in use, the AddressFamily
      directive could be ignored.
    - sftp(1): correct handling of the limits@openssh.com option when the
      server returned an unexpected message.
    - ssh(1): release GSS OIDs only at end of authentication, avoiding
      unnecessary init/cleanup cycles.
    - ssh_config(5): mention "none" is a valid argument to IdentityFile in
      the manual.
    - scp(1): improved debugging for paths from the server rejected for not
      matching the client's glob(3) pattern in old SCP/RCP protocol mode.
    - ssh-agent(1): refuse signing operations on destination-constrained
      keys if a previous session-bind operation has failed. This may prevent
      a fail-open situation in future if a user uses a mismatched ssh(1)
      client and ssh-agent(1) where the client supports a key type that the
      agent does not support.
  * debian/run-tests: Supply absolute paths to tools.
  * debian/run-tests: Enable interop tests for Dropbear.

 -- Colin Watson <cjwatson@debian.org>  Mon, 18 Dec 2023 22:35:25 +0000

openssh (1:9.5p1-2) unstable; urgency=medium

  * Upload to unstable.

 -- Colin Watson <cjwatson@debian.org>  Sat, 25 Nov 2023 16:16:04 +0000

openssh (1:9.5p1-1) experimental; urgency=medium

  * New upstream release (https://www.openssh.com/releasenotes.html#9.5p1):
    - ssh-keygen(1): generate Ed25519 keys by default. Ed25519 public keys
      are very convenient due to their small size. Ed25519 keys are
      specified in RFC 8709 and OpenSSH has supported them since version 6.5
      (January 2014).
    - sshd(8): the Subsystem directive now accurately preserves quoting of
      subsystem commands and arguments. This may change behaviour for exotic
      configurations, but the most common subsystem configuration
      (sftp-server) is unlikely to be affected.
    - ssh(1): add keystroke timing obfuscation to the client. This attempts
      to hide inter-keystroke timings by sending interactive traffic at
      fixed intervals (default: every 20ms) when there is only a small
      amount of data being sent. It also sends fake "chaff" keystrokes for a
      random interval after the last real keystroke. These are controlled by
      a new ssh_config ObscureKeystrokeTiming keyword.
    - ssh(1), sshd(8): Introduce a transport-level ping facility. This adds
      a pair of SSH transport protocol messages SSH2_MSG_PING/PONG to
      implement a ping capability. These messages use numbers in the "local
      extensions" number space and are advertised using a "ping@openssh.com"
      ext-info message with a string version number of "0".
    - sshd(8): allow override of Subsystem directives in sshd Match blocks.
    - scp(1): fix scp in SFTP mode recursive upload and download of
      directories that contain symlinks to other directories. In scp mode,
      the links would be followed, but in SFTP mode they were not.
    - ssh-keygen(1): handle cr+lf (instead of just cr) line endings in
      sshsig signature files.
    - ssh(1): interactive mode for ControlPersist sessions if they
      originally requested a tty.
    - sshd(8): make PerSourceMaxStartups first-match-wins.
    - sshd(8): limit artificial login delay to a reasonable maximum (5s) and
      don't delay at all for the "none" authentication mechanism.
    - sshd(8): Log errors in kex_exchange_identification() with level
      verbose instead of error to reduce preauth log spam. All of those get
      logged with a more generic error message by sshpkt_fatal().
    - sshd(8): correct math for ClientAliveInterval that caused the probes
      to be sent less frequently than configured.
    - ssh(1): fix regression in OpenSSH 9.4 (mux.c r1.99) that caused
      multiplexed sessions to ignore SIGINT under some circumstances.
  * Build-depend on dh-sequence-movetousr.
  * Report DebianBanner setting in "sshd -G/-T" output (thanks, Rasmus
    Villemoes; closes: #1053555).

 -- Colin Watson <cjwatson@debian.org>  Thu, 23 Nov 2023 17:38:07 +0000

openssh (1:9.4p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/releasenotes.html#9.4p1):
    - ssh-agent(1): PKCS#11 modules must now be specified by their full
      paths. Previously dlopen(3) could search for them in system library
      directories.
    - ssh(1): allow forwarding Unix Domain sockets via ssh -W.
    - ssh(1): add support for configuration tags to ssh(1). This adds a
      ssh_config(5) "Tag" directive and corresponding "Match tag" predicate
      that may be used to select blocks of configuration similar to the
      pf.conf(5) keywords of the same name.
    - ssh(1): add a "match localnetwork" predicate. This allows matching on
      the addresses of available network interfaces and may be used to vary
      the effective client configuration based on network location.
    - ssh(1), sshd(8), ssh-keygen(1): infrastructure support for KRL
      extensions. This defines wire formats for optional KRL extensions and
      implements parsing of the new submessages. No actual extensions are
      supported at this point.
    - sshd(8): AuthorizedPrincipalsCommand and AuthorizedKeysCommand now
      accept two additional %-expansion sequences: %D which expands to the
      routing domain of the connected session and %C which expands to the
      addresses and port numbers for the source and destination of the
      connection.
    - ssh-keygen(1): increase the default work factor (rounds) for the
      bcrypt KDF used to derive symmetric encryption keys for passphrase
      protected key files by 50%.
    - ssh-agent(1): improve isolation between loaded PKCS#11 modules by
      running separate ssh-pkcs11-helpers for each loaded provider.
    - ssh(1): make -f (fork after authentication) work correctly with
      multiplexed connections, including ControlPersist (closes: #348741).
    - ssh(1): make ConnectTimeout apply to multiplexing sockets and not just
      to network connections.
    - ssh-agent(1), ssh(1): improve defences against invalid PKCS#11 modules
      being loaded by checking that the requested module contains the
      required symbol before loading it.
    - sshd(8): fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand
      appears before it in sshd_config. Since OpenSSH 8.7 the
      AuthorizedPrincipalsCommand directive was incorrectly ignored in this
      situation.
    - sshd(8), ssh(1), ssh-keygen(1): remove vestigial support for KRL
      signatures. When the KRL format was originally defined, it included
      support for signing of KRL objects. However, the code to sign KRLs and
      verify KRL signatues was never completed in OpenSSH. This release
      removes the partially-implemented code to verify KRLs. All OpenSSH
      tools now ignore KRL_SECTION_SIGNATURE sections in KRL files.
    - All: fix a number of memory leaks and unreachable/harmless integer
      overflows.
    - ssh-agent(1), ssh(1): don't truncate strings logged from PKCS#11
      modules.
    - sshd(8), ssh(1): better validate CASignatureAlgorithms in ssh_config
      and sshd_config. Previously this directive would accept certificate
      algorithm names, but these were unusable in practice as OpenSSH does
      not support CA chains.
    - ssh(1): make `ssh -Q CASignatureAlgorithms` only list signature
      algorithms that are valid for CA signing. Previous behaviour was to
      list all signing algorithms, including certificate algorithms.
    - ssh-keyscan(1): gracefully handle systems where rlimits or the maximum
      number of open files is larger than INT_MAX.
    - ssh-keygen(1): fix "no comment" not showing on when running
      `ssh-keygen -l` on multiple keys where one has a comment and other
      following keys do not. bz3580
    - scp(1), sftp(1): adjust ftruncate() logic to handle servers that
      reorder requests. Previously, if the server reordered requests then
      the resultant file would be erroneously truncated.
    - ssh(1): don't incorrectly disable hostname canonicalization when
      CanonicalizeHostname=yes and ProxyJump was explicitly set to "none".
    - scp(1): when copying local->remote, check that the source file exists
      before opening an SFTP connection to the server (closes: #59255).
    - sshd(8): provide a replacement for the SELinux matchpathcon()
      function, which is deprecated.
    - All: relax libcrypto version checks for OpenSSL >=3 (closes:
      #1035623). Beyond OpenSSL 3.0, the ABI compatibility guarantees are
      wider (only the library major must match instead of major and minor in
      earlier versions).
    - ssh-copy-id(1): Special case OpenWrt instead of Dropbear
      (LP: #1966886).

 -- Colin Watson <cjwatson@debian.org>  Sat, 02 Sep 2023 21:02:53 +0100

openssh (1:9.3p2-1) unstable; urgency=high

  * New upstream release (https://www.openssh.com/releasenotes.html#9.3p2):
    - [CVE-2023-38408] Fix a condition where specific libraries loaded via
      ssh-agent(1)'s PKCS#11 support could be abused to achieve remote code
      execution via a forwarded agent socket.

 -- Colin Watson <cjwatson@debian.org>  Wed, 19 Jul 2023 22:49:14 +0100

openssh (1:9.3p1-1) unstable; urgency=medium

  * Debconf translations:
    - Romanian (thanks, Remus-Gabriel Chelu; closes: #1033178).
  * Properly fix date of 1:3.0.2p1-2 changelog entry (closes: #1034425).
  * New upstream release (https://www.openssh.com/releasenotes.html#9.3p1):
    - [CVE-2023-28531] ssh-add(1): when adding smartcard keys to
      ssh-agent(1) with the per-hop destination constraints (ssh-add -h ...)
      added in OpenSSH 8.9, a logic error prevented the constraints from
      being communicated to the agent. This resulted in the keys being added
      without constraints. The common cases of non-smartcard keys and keys
      without destination constraints are unaffected. This problem was
      reported by Luci Stanescu (closes: #1033166).
    - [SECURITY] ssh(1): Portable OpenSSH provides an implementation of the
      getrrsetbyname(3) function if the standard library does not provide
      it, for use by the VerifyHostKeyDNS feature. A specifically crafted
      DNS response could cause this function to perform an out-of-bounds
      read of adjacent stack data, but this condition does not appear to be
      exploitable beyond denial-of-service to the ssh(1) client.
    - ssh-keygen(1), ssh-keyscan(1): accept -Ohashalg=sha1|sha256 when
      outputting SSHFP fingerprints to allow algorithm selection.
    - sshd(8): add a `sshd -G` option that parses and prints the effective
      configuration without attempting to load private keys and perform
      other checks. This allows usage of the option before keys have been
      generated and for configuration evaluation and verification by
      unprivileged users.
    - scp(1), sftp(1): fix progressmeter corruption on wide displays.
    - ssh-add(1), ssh-keygen(1): use RSA/SHA256 when testing usability of
      private keys as some systems are starting to disable RSA/SHA1 in
      libcrypto.
    - sftp-server(8): fix a memory leak.
    - ssh(1), sshd(8), ssh-keyscan(1): remove vestigial protocol
      compatibility code and simplify what's left.
    - Fix a number of low-impact Coverity static analysis findings.
    - ssh_config(5), sshd_config(5): mention that some options are not
      first-match-wins.
    - Rework logging for the regression tests. Regression tests will now
      capture separate logs for each ssh and sshd invocation in a test.
    - ssh(1): make `ssh -Q CASignatureAlgorithms` work as the manpage says
      it should.
    - ssh(1): ensure that there is a terminating newline when adding a new
      entry to known_hosts.
    - sshd(8): harden Linux seccomp sandbox. Move to an allowlist of
      mmap(2), madvise(2) and futex(2) flags, removing some concerning
      kernel attack surface.
  * debian/README.Debian: Clarify that you need to restart ssh.socket after
    overriding its ListenStream= option (LP: #2020560).
  * debian/openssh-server.postinst: Use "sshd -G" to parse the server
    configuration file (closes: #959726).
  * Fix incorrect RRSET_FORCE_EDNS0 flags validation in SSHFP DNSSEC patch
    (thanks, Ben Hutchings; closes: #909022).
  * Always use the internal mkdtemp implementation, since it substitutes
    more randomness into the template string than glibc's version (closes:
    #1001186).

 -- Colin Watson <cjwatson@debian.org>  Tue, 20 Jun 2023 01:01:48 +0100

openssh (1:9.2p1-2) unstable; urgency=medium

  * Fix mistakenly-unreleased entry for 1:9.2p1-1 in debian/NEWS.

 -- Colin Watson <cjwatson@debian.org>  Wed, 08 Feb 2023 10:43:07 +0000

openssh (1:9.2p1-1) unstable; urgency=medium

  * Set "UsePAM yes" when running regression tests, to match our default
    sshd configuration.
  * Ignore Lintian error about depending on lsb-base for now, to avoid
    problems with partial upgrades on non-default init systems.
  * New upstream release (https://www.openssh.com/releasenotes.html#9.2p1):
    - [SECURITY] sshd(8): fix a pre-authentication double-free memory fault
      introduced in OpenSSH 9.1. This is not believed to be exploitable, and
      it occurs in the unprivileged pre-auth process that is subject to
      chroot(2) and is further sandboxed on most major platforms.
    - [SECURITY] ssh(8): in OpenSSH releases after 8.7, the PermitRemoteOpen
      option would ignore its first argument unless it was one of the
      special keywords "any" or "none", causing the permission list to fail
      open if only one permission was specified.
    - [SECURITY] ssh(1): if the CanonicalizeHostname and
      CanonicalizePermittedCNAMEs options were enabled, and the system/libc
      resolver did not check that names in DNS responses were valid, then
      use of these options could allow an attacker with control of DNS to
      include invalid characters (possibly including wildcards) in names
      added to known_hosts files when they were updated. These names would
      still have to match the CanonicalizePermittedCNAMEs allow-list, so
      practical exploitation appears unlikely.
    - ssh(1): add a new EnableEscapeCommandline ssh_config(5) option that
      controls whether the client-side ~C escape sequence that provides a
      command-line is available. Among other things, the ~C command-line
      could be used to add additional port-forwards at runtime. This option
      defaults to "no", disabling the ~C command-line that was previously
      enabled by default.
    - sshd(8): add support for channel inactivity timeouts via a new
      sshd_config(5) ChannelTimeout directive. This allows channels that
      have not seen traffic in a configurable interval to be automatically
      closed. Different timeouts may be applied to session, X11, agent and
      TCP forwarding channels.
    - sshd(8): add a sshd_config UnusedConnectionTimeout option to terminate
      client connections that have no open channels for a length of time.
      This complements the ChannelTimeout option above.
    - sshd(8): add a -V (version) option to sshd like the ssh client has.
    - ssh(1): add a "Host" line to the output of ssh -G showing the original
      hostname argument. bz3343
    - scp(1), sftp(1): add a -X option to both scp(1) and sftp(1) to allow
      control over some SFTP protocol parameters: the copy buffer length and
      the number of in-flight requests, both of which are used during
      upload/download. Previously these could be controlled in sftp(1) only.
      This makes them available in both SFTP protocol clients using the same
      option character sequence.
    - ssh-keyscan(1): allow scanning of complete CIDR address ranges, e.g.
      "ssh-keyscan 192.168.0.0/24". If a CIDR range is passed, then it will
      be expanded to all possible addresses in the range including the
      all-0s and all-1s addresses.
    - ssh(1): support dynamic remote port forwarding in escape
      command-line's -R processing.
    - ssh(1): when restoring non-blocking mode to stdio fds, restore exactly
      the flags that ssh started with and don't just clobber them with zero,
      as this could also remove the append flag from the set.
    - ssh(1): avoid printf("%s", NULL) if using UserKnownHostsFile=none and
      a hostkey in one of the system known hosts file changes.
    - scp(1): switch scp from using pipes to a socket-pair for communication
      with its ssh sub-processes, matching how sftp(1) operates.
    - sshd(8): clear signal mask early in main(); sshd may have been started
      with one or more signals masked (sigprocmask(2) is not cleared on
      fork/exec) and this could interfere with various things, e.g. the
      login grace timer. Execution environments that fail to clear the
      signal mask before running sshd are clearly broken, but apparently
      they do exist.
    - ssh(1): warn if no host keys for hostbased auth can be loaded.
    - sshd(8): Add server debugging for hostbased auth that is queued and
      sent to the client after successful authentication, but also logged to
      assist in diagnosis of HostbasedAuthentication problems.
    - ssh(1): document use of the IdentityFile option as being usable to
      list public keys as well as private keys.
    - sshd(8): check for and disallow MaxStartups values less than or equal
      to zero during config parsing, rather than failing later at runtime.
    - ssh-keygen(1): fix parsing of hex cert expiry times specified on the
      command-line when acting as a CA.
    - scp(1): when scp(1) is using the SFTP protocol for transport (the
      default), better match scp/rcp's handling of globs that don't match
      the globbed characters but do match literally (e.g. trying to transfer
      a file named "foo.[1]"). Previously scp(1) in SFTP mode would not
      match these pathnames but legacy scp/rcp mode would.
    - ssh-agent(1): document the "-O no-restrict-websafe" command-line
      option.
    - ssh(1): honour user's umask(2) if it is more restrictive then the ssh
      default (022).
    - sshd(8): allow writev(2) in the Linux seccomp sandbox. This seems to
      be used by recent glibcs at least in some configurations during error
      conditions.
    - sshd(8): simplify handling of SSH_CONNECTION PAM env var, removing
      global variable and checking the return value from pam_putenv.
    - sshd(8): disable SANDBOX_SECCOMP_FILTER_DEBUG that was mistakenly
      enabled during the OpenSSH 9.1 release cycle.
    - sshd(8): defer PRNG seeding until after the initial closefrom(2) call.
      PRNG seeding will initialize OpenSSL, and some engine providers (e.g.
      Intel's QAT) will open descriptors for their own use that closefrom(2)
      could clobber.
  * debian/run-tests: Add a little more flexibility for debugging.

 -- Colin Watson <cjwatson@debian.org>  Wed, 08 Feb 2023 10:36:06 +0000

openssh (1:9.1p1-2) unstable; urgency=medium

  [ Christian Göttsche ]
  * Do not copy SELinux security context in postinst.

  [ Colin Watson ]
  * Add missing ${misc:Depends} to Depends for openssh-client-udeb,
    openssh-server-udeb.
  * Use secure URI in Homepage field.
  * Remove 2 obsolete maintscript entries in 2 files.
  * Fix day-of-week for changelog entries 1:3.0.2p1-9, 1:3.0.2p1-2,
    1:3.0.1p1-1.
  * Remove deprecated Encoding key from desktop file
    debian/ssh-askpass-gnome.desktop.
  * Update standards version to 4.6.2, no changes needed.
  * debian/tests/regress: Adjust to cope with changes in adduser 3.130 (see
    #625758).

 -- Colin Watson <cjwatson@debian.org>  Tue, 03 Jan 2023 11:57:19 +0000

openssh (1:9.1p1-1) unstable; urgency=medium

  [ Markus Teich ]
  * Delete obsolete upstart configuration override.

  [ Colin Watson ]
  * Work around apparent dh-exec regressions (closes: #1016340).
  * Don't install unnecessary *.lo files in openssh-tests.
  * Update Lintian overrides to current syntax.
  * Pass on compiler/linker flags when building debian/keygen-test.
  * Remove obsolete and misleading rcp/rlogin/rsh alternatives, and stop
    providing rsh-client (closes: #197037).
  * Add sshd_config checksums for 1:8.2p1-1 and 1:8.7p1-1 to ucf reference
    file.
  * New upstream release (https://www.openssh.com/releasenotes.html#9.1p1,
    closes: #1021585):
    - ssh-keyscan(1): fix a one-byte overflow in SSH- banner processing.
    - ssh-keygen(1): double free() in error path of file hashing step in
      signing/verify code.
    - ssh-keysign(8): double-free in error path introduced in openssh-8.9.
    - ssh(1), sshd(8): SetEnv directives in ssh_config and sshd_config are
      now first-match-wins to match other directives. Previously if an
      environment variable was multiply specified the last set value would
      have been used.
    - ssh-keygen(8): ssh-keygen -A (generate all default host key types)
      will no longer generate DSA keys, as these are insecure and have not
      been used by default for some years.
    - ssh(1), sshd(8): add a RequiredRSASize directive to set a minimum RSA
      key length. Keys below this length will be ignored for user
      authentication and for host authentication in sshd(8). ssh(1) will
      terminate a connection if the server offers an RSA key that falls
      below this limit, as the SSH protocol does not include the ability to
      retry a failed key exchange.
    - sftp-server(8): add a "users-groups-by-id@openssh.com" extension
      request that allows the client to obtain user/group names that
      correspond to a set of uids/gids.
    - sftp(1): use "users-groups-by-id@openssh.com" sftp-server extension
      (when available) to fill in user/group names for directory listings.
    - sftp-server(8): support the "home-directory" extension request defined
      in draft-ietf-secsh-filexfer-extensions-00. This overlaps a bit with
      the existing "expand-path@openssh.com", but some other clients support
      it.
    - ssh-keygen(1), sshd(8): allow certificate validity intervals, sshsig
      verification times and authorized_keys expiry-time options to accept
      dates in the UTC time zone in addition to the default of interpreting
      them in the system time zone. YYYYMMDD and YYMMDDHHMM[SS] dates/times
      will be interpreted as UTC if suffixed with a 'Z' character. Also
      allow certificate validity intervals to be specified in raw
      seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This is
      intended for use by regress tests and other tools that call ssh-keygen
      as part of a CA workflow.
    - sftp(1): allow arguments to the sftp -D option, e.g. sftp -D
      "/usr/libexec/sftp-server -el debug3".
    - ssh-keygen(1): allow the existing -U (use agent) flag to work with "-Y
      sign" operations, where it will be interpreted to require that the
      private keys is hosted in an agent.
    - ssh-keygen(1): implement the "verify-required" certificate option.
      This was already documented when support for user-verified FIDO keys
      was added, but the ssh-keygen(1) code was missing.
    - ssh-agent(1): hook up the restrict_websafe command-line flag;
      previously the flag was accepted but never actually used.
    - sftp(1): improve filename tab completions: never try to complete names
      to non-existent commands, and better match the completion type (local
      or remote filename) against the argument position being completed.
    - ssh-keygen(1), ssh(1), ssh-agent(1): several fixes to FIDO key
      handling, especially relating to keys that request user-verification.
      These should reduce the number of unnecessary PIN prompts for keys
      that support intrinsic user verification.
    - ssh-keygen(1): when enrolling a FIDO resident key, check if a
      credential with matching application and user ID strings already
      exists and, if so, prompt the user for confirmation before overwriting
      the credential.
    - sshd(8): improve logging of errors when opening authorized_keys files.
    - ssh(1): avoid multiplexing operations that could cause SIGPIPE from
      causing the client to exit early.
    - ssh_config(5), sshd_config(5): clarify that the RekeyLimit directive
      applies to both transmitted and received data.
    - ssh-keygen(1): avoid double fclose() in error path.
    - sshd(8): log an error if pipe() fails while accepting a connection.
    - ssh-keyscan(1): add missing *-sk types to ssh-keyscan manpage.
    - sshd(8): ensure that authentication passwords are cleared from memory
      in error paths.
    - ssh(1), ssh-agent(1): avoid possibility of notifier code executing
      kill(-1).
    - ssh_config(5): note that the ProxyJump directive also accepts the same
      tokens as ProxyCommand.
    - scp(1): do not ftruncate(3) files early when in sftp mode. The
      previous behaviour of unconditionally truncating the destination file
      would cause "scp ~/foo localhost:foo" and the reverse "scp
      localhost:foo ~/foo" to delete all the contents of their destination.
    - ssh-keygen(1): improve error message when 'ssh-keygen -Y sign' is
      unable to load a private key.
    - sftp(1), scp(1): when performing operations that glob(3) a remote
      path, ensure that the implicit working directory used to construct
      that path escapes glob(3) characters. This prevents glob characters
      from being processed in places they shouldn't, e.g. "cd /tmp/a*/",
      "get *.txt" should have the get operation treat the path "/tmp/a*"
      literally and not attempt to expand it (LP: #1483751).
    - ssh(1), sshd(8): be stricter in which characters will be accepted in
      specifying a mask length; allow only 0-9.
    - ssh-keygen(1): avoid printing hash algorithm twice when dumping a KRL.
    - ssh(1), sshd(8): continue running local I/O for open channels during
      SSH transport rekeying. This should make ~-escapes work in the client
      (e.g. to exit) if the connection happened to have stalled during a
      rekey event.
    - ssh(1), sshd(8): avoid potential poll() spin during rekeying.
    - Further hardening for sshbuf internals: disallow "reparenting" a
      hierarchical sshbuf and zero the entire buffer if reallocation fails.
    - sshd(8): add AUDIT_ARCH_PPC to supported seccomp sandbox
      architectures.
  * Drop patch to work around https://twistedmatrix.com/trac/ticket/9765,
    since the fix for that is in Debian testing.
  * Rewrite gnome-ssh-askpass(1) manual page using mdoc macros, and flesh it
    out a bit more.

  [ Steve Langasek ]
  * Support systemd socket activation.  Migrate any existing inetd-style
    socket activation to systemd socket activation.

  [ Gioele Barabucci ]
  * Remove ancient version constraints.
  * d/openssh-server.{postinst,config}: get_config_option: Replace perl with
    sed.

 -- Colin Watson <cjwatson@debian.org>  Mon, 14 Nov 2022 16:25:45 +0000

openssh (1:9.0p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/releasenotes.html#9.0p1):
    - scp(1): Use the SFTP protocol by default (closes: #144579, #204546,
      #327019). This changes scp's quoting semantics by no longer performing
      wildcard expansion using the remote shell, and (with some server
      versions) no longer expanding ~user paths. The -O option is available
      to use the old protocol. See NEWS.Debian for more details.
    - ssh(1), sshd(8): use the hybrid Streamlined NTRU Prime + x25519 key
      exchange method by default ("sntrup761x25519-sha512@openssh.com").
      The NTRU algorithm is believed to resist attacks enabled by future
      quantum computers and is paired with the X25519 ECDH key exchange (the
      previous default) as a backstop against any weaknesses in NTRU Prime
      that may be discovered in the future. The combination ensures that the
      hybrid exchange offers at least as good security as the status quo.
    - sftp-server(8): support the "copy-data" extension to allow server-
      side copying of files/data, following the design in
      draft-ietf-secsh-filexfer-extensions-00.
    - sftp(1): add a "cp" command to allow the sftp client to perform
      server-side file copies.
    - ssh(1), sshd(8): upstream: fix poll(2) spin when a channel's output fd
      closes without data in the channel buffer (closes: #1007822).
    - sshd(8): pack pollfd array in server listen/accept loop. Could cause
      the server to hang/spin when MaxStartups > RLIMIT_NOFILE.
    - ssh-keygen(1): avoid NULL deref via the find-principals and
      check-novalidate operations. bz3409 and GHPR307 respectively.
    - scp(1): fix a memory leak in argument processing.
    - sshd(8): don't try to resolve ListenAddress directives in the sshd
      re-exec path. They are unused after re-exec and parsing errors
      (possible for example if the host's network configuration changed)
      could prevent connections from being accepted.
    - sshd(8): when refusing a public key authentication request from a
      client for using an unapproved or unsupported signature algorithm
      include the algorithm name in the log message to make debugging
      easier.
    - ssh(1), sshd(8): Fix possible integer underflow in scan_scaled(3)
      parsing of K/M/G/etc quantities.
    - sshd(8): default to not using sandbox when cross compiling. On most
      systems poll(2) does not work when the number of FDs is reduced with
      setrlimit, so assume it doesn't when cross compiling and we can't run
      the test.
  * Remove obsolete FAQ, removed from openssh.com in 2016.

 -- Colin Watson <cjwatson@debian.org>  Sat, 09 Apr 2022 14:14:10 +0100

openssh (1:8.9p1-3) unstable; urgency=medium

  * Allow ppoll_time64 in seccomp filter (closes: #1006445).

 -- Colin Watson <cjwatson@debian.org>  Fri, 25 Feb 2022 23:30:49 +0000

openssh (1:8.9p1-2) unstable; urgency=medium

  * Improve detection of -fzero-call-used-regs=all support.

 -- Colin Watson <cjwatson@debian.org>  Thu, 24 Feb 2022 16:09:56 +0000

openssh (1:8.9p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/releasenotes.html#8.9p1):
    - sshd(8): fix an integer overflow in the user authentication path that,
      in conjunction with other logic errors, could have yielded
      unauthenticated access under difficult to exploit conditions.
    - sshd(8), portable OpenSSH only: this release removes in-built support
      for MD5-hashed passwords.
    - ssh(1), sshd(8), ssh-add(1), ssh-agent(1): add a system for
      restricting forwarding and use of keys added to ssh-agent(1).
    - ssh(1), sshd(8): add the sntrup761x25519-sha512@openssh.com hybrid
      ECDH/x25519 + Streamlined NTRU Prime post-quantum KEX to the default
      KEXAlgorithms list (after the ECDH methods but before the prime-group
      DH ones). The next release of OpenSSH is likely to make this key
      exchange the default method.
    - ssh-keygen(1): when downloading resident keys from a FIDO token, pass
      back the user ID that was used when the key was created and append it
      to the filename the key is written to (if it is not the default).
      Avoids keys being clobbered if the user created multiple resident keys
      with the same application string but different user IDs.
    - ssh-keygen(1), ssh(1), ssh-agent(1): better handling for FIDO keys on
      tokens that provide user verification (UV) on the device itself,
      including biometric keys, avoiding unnecessary PIN prompts.
    - ssh-keygen(1): add "ssh-keygen -Y match-principals" operation to
      perform matching of principals names against an allowed signers file.
      To be used towards a TOFU model for SSH signatures in git.
    - ssh-add(1), ssh-agent(1): allow pin-required FIDO keys to be added to
      ssh-agent(1). $SSH_ASKPASS will be used to request the PIN at
      authentication time.
    - ssh-keygen(1): allow selection of hash at sshsig signing time (either
      sha512 (default) or sha256).
    - ssh(1), sshd(8): read network data directly to the packet input buffer
      instead indirectly via a small stack buffer. Provides a modest
      performance improvement.
    - ssh(1), sshd(8): read data directly to the channel input buffer,
      providing a similar modest performance improvement.
    - ssh(1): extend the PubkeyAuthentication configuration directive to
      accept yes|no|unbound|host-bound to allow control over one of the
      protocol extensions used to implement agent-restricted keys.
    - sshd(8): document that CASignatureAlgorithms, ExposeAuthInfo and
      PubkeyAuthOptions can be used in a Match block.
    - sshd(8): fix possible string truncation when constructing paths to
      .rhosts/.shosts files with very long user home directory names.
    - ssh-keysign(1): unbreak for KEX algorithms that use SHA384/512
      exchange hashes.
    - ssh(1): don't put the TTY into raw mode when SessionType=none, avoids
      ^C being unable to kill such a session.
    - scp(1): fix some corner-case bugs in SFTP-mode handling of ~-prefixed
      paths.
    - ssh(1): unbreak hostbased auth using RSA keys. Allow ssh(1) to select
      RSA keys when only RSA/SHA2 signature algorithms are configured (this
      is the default case). Previously RSA keys were not being considered in
      the default case.
    - ssh-keysign(1): make ssh-keysign use the requested signature algorithm
      and not the default for the key type. Part of unbreaking hostbased
      auth for RSA/SHA2 keys.
    - ssh(1): stricter UpdateHostkey signature verification logic on the
      client-side. Require RSA/SHA2 signatures for RSA hostkeys except when
      RSA/SHA1 was explicitly negotiated during initial KEX.
    - ssh(1), sshd(8): fix signature algorithm selection logic for
      UpdateHostkeys on the server side. The previous code tried to prefer
      RSA/SHA2 for hostkey proofs of RSA keys, but missed some cases. This
      will use RSA/SHA2 signatures for RSA keys if the client proposed these
      algorithms in initial KEX.
    - All: convert all uses of select(2)/pselect(2) to poll(2)/ppoll(2).
      This includes the mainloops in ssh(1), ssh-agent(1), ssh-agent(1) and
      sftp-server(8), as well as the sshd(8) listen loop and all other FD
      read/writability checks. On platforms with missing or broken
      poll(2)/ppoll(2) syscalls a select(2)-based compat shim is available.
    - ssh-keygen(1): the "-Y find-principals" command was verifying key
      validity when using ca certs but not with simple key lifetimes within
      the allowed signers file.
    - ssh-keygen(1): make sshsig verify-time argument parsing optional.
    - sshd(8): fix truncation in rhosts/shosts path construction.
    - ssh(1), ssh-agent(1): avoid xmalloc(0) for PKCS#11 keyid for ECDSA
      keys (we already did this for RSA keys). Avoids fatal errors for
      PKCS#11 libraries that return empty keyid, e.g. Microchip ATECC608B
      "cryptoauthlib".
    - ssh(1), ssh-agent(1): improve the testing of credentials against
      inserted FIDO: ask the token whether a particular key belongs to it in
      cases where the token supports on-token user-verification (e.g.
      biometrics) rather than just assuming that it will accept it. Will
      reduce spurious "Confirm user presence" notifications for key handles
      that relate to FIDO keys that are not currently inserted in at least
      some cases.
    - ssh(1), sshd(8): correct value for IPTOS_DSCP_LE. It needs to allow
      for the preceding two ECN bits.
    - ssh-keygen(1): add missing -O option to usage() for the "-Y sign"
      option.
    - ssh-keygen(1): fix a NULL deref when using the find-principals
      function, when matching an allowed_signers line that contains a
      namespace restriction, but no restriction specified on the
      command-line
    - ssh-agent(1): fix memleak in process_extension().
    - ssh(1): suppress "Connection to xxx closed" messages when LogLevel is
      set to "error" or above.
    - ssh(1), sshd(8): use correct zlib flags when inflate(3)-ing compressed
      packet data.
    - scp(1): when recursively transferring files in SFTP mode, create the
      destination directory if it doesn't already exist to match scp(1) in
      legacy RCP mode behaviour.
    - scp(1): many improvements in error message consistency between scp(1)
      in SFTP mode vs legacy RCP mode.
    - sshd(8): fix potential race in SIGTERM handling.
    - ssh(1), ssh(8): since DSA keys are deprecated, move them to the end of
      the default list of public keys so that they will be tried last.
    - ssh-keygen(1): allow 'ssh-keygen -Y find-principals' to match wildcard
      principals in allowed_signers files.
    - ssh(1), sshd(8): don't trust closefrom(2) on Linux. glibc's
      implementation does not work in a chroot when the kernel does not have
      close_range(2). It tries to read from /proc/self/fd and when that
      fails dies with an assertion of sorts. Instead, call close_range(2)
      directly from our compat code and fall back if that fails.
    - Correct handling of exceptfds/POLLPRI in our select(2)-based
      poll(2)/ppoll(2) compat implementation.
  * Drop patch to work around https://twistedmatrix.com/trac/ticket/9515,
    since the fix for that is in Debian stable.

 -- Colin Watson <cjwatson@debian.org>  Thu, 24 Feb 2022 11:06:15 +0000

openssh (1:8.8p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/releasenotes.html#8.8p1,
    closes: #996391):
    - This release disables RSA signatures using the SHA-1 hash algorithm by
      default.  (Existing RSA keys may still be used and do not need to be
      replaced; see NEWS.Debian if you have problems connecting to old SSH
      servers.)
    - ssh(1): allow the ssh_config(5) CanonicalizePermittedCNAMEs directive
      to accept a "none" argument to specify the default behaviour.
    - scp(1): when using the SFTP protocol, continue transferring files
      after a transfer error occurs, better matching original scp/rcp
      behaviour.
    - ssh(1): fixed a number of memory leaks in multiplexing,
    - ssh-keygen(1): avoid crash when using the -Y find-principals command.
    - A number of documentation and manual improvements.
    - ssh(1)/sshd(8): some fixes to the pselect(2) replacement compatibility
      code.
  * Work around missing RSA SHA-2 signature support in conch until the
    upstream fix lands in Debian.

 -- Colin Watson <cjwatson@debian.org>  Tue, 15 Feb 2022 19:20:21 +0000

openssh (1:8.7p1-4) unstable; urgency=medium

  [ Daniel Baumann ]
  * Fix typo in openssh-client.alternatives (closes: #1002803).

  [ Colin Watson ]
  * Further clarify socket activation instructions.

 -- Colin Watson <cjwatson@debian.org>  Wed, 29 Dec 2021 12:08:38 +0000

openssh (1:8.7p1-3) unstable; urgency=medium

  * Include unit test binaries in openssh-tests even if building with
    DEB_BUILD_OPTIONS=nocheck.
  * Install built version of sshd_config, with corrected PATH and PidFile.
  * Upgrade to debhelper v13.
  * debian/copyright: Use HTTPS in Source field.
  * Update renamed Lintian tag name in Lintian override.
  * debian/watch: Upgrade to version 4.
  * Clarify instructions for using socket activation to avoid accidental
    attempts to start the non-socket-activated service that can result in
    systems without a running sshd (closes: #1001320).
  * Remove maintainer script code for upgrades from before Debian 9.
  * Make the sysvinit script provide "ssh" as well as "sshd".
  * Set Rules-Requires-Root: no.
  * Use dh_installalternatives.
  * Simplify some debhelper overrides slightly.

 -- Colin Watson <cjwatson@debian.org>  Wed, 29 Dec 2021 01:12:00 +0000

openssh (1:8.7p1-2) unstable; urgency=medium

  * Backport from upstream:
    - Avoid NULL deref in -Y find-principals (closes: #999593).

 -- Colin Watson <cjwatson@debian.org>  Sat, 13 Nov 2021 13:40:50 +0000

openssh (1:8.7p1-1) unstable; urgency=medium

  * debian/upstream/signing-key.asc: Update from upstream.
  * New upstream release (https://www.openssh.com/releasenotes.html#8.7p1):
    - scp(1): this release changes the behaviour of remote to remote copies
      (e.g. "scp host-a:/path host-b:") to transfer through the local host
      by default (closes: #734386, LP: #1462758). This was previously
      available via the -3 flag. A -R flag has been added to select the old
      behaviour.
    - ssh(1)/sshd(8): both the client and server are now using a stricter
      configuration file parser.
    - ssh(1): when using SSHFP DNS records for host key verification, ssh(1)
      will verify all matching records instead of just those with the
      specific signature type requested.
    - ssh-keygen(1): when generating a FIDO key and specifying an explicit
      attestation challenge (using -Ochallenge), the challenge will now be
      hashed by the builtin security key middleware.
    - sshd(8): environment="..." directives in authorized_keys files are now
      first-match-wins and limited to 1024 discrete environment variable
      names.
    - scp(1): experimental support for transfers using the SFTP protocol as
      a replacement for the venerable SCP/RCP protocol that it has
      traditionally used. SFTP offers more predictable filename handling and
      does not require expansion of glob(3) patterns via the shell on the
      remote side.
      SFTP support may be enabled via a temporary scp -s flag. It is
      intended for SFTP to become the default transfer mode in the near
      future, at which time the -s flag will be removed. The -O flag exists
      to force use of the original SCP/RCP protocol for cases where SFTP may
      be unavailable or incompatible.
    - sftp-server(8): add a protocol extension to support expansion of ~/
      and ~user/ prefixed paths. This was added to support these paths when
      used by scp(1) while in SFTP mode.
    - ssh(1): add a ForkAfterAuthentication ssh_config(5) counterpart to the
      ssh(1) -f flag. GHPR231
    - ssh(1): add a StdinNull directive to ssh_config(5) that allows the
      config file to do the same thing as -n does on the ssh(1) command-
      line. GHPR231
    - ssh(1): add a SessionType directive to ssh_config, allowing the
      configuration file to offer equivalent control to the -N (no session)
      and -s (subsystem) command-line flags (closes: #609122).
    - ssh-keygen(1): allowed signers files used by ssh-keygen(1) signatures
      now support listing key validity intervals alongside they key, and
      ssh-keygen(1) can optionally check during signature verification
      whether a specified time falls inside this interval. This feature is
      intended for use by git to support signing and verifying objects using
      ssh keys.
    - ssh-keygen(8): support printing of the full public key in a sshsig
      signature via a -Oprint-pubkey flag.
    - ssh(1)/sshd(8): start time-based re-keying exactly on schedule in the
      client and server mainloops. Previously the re-key timeout could
      expire but re-keying would not start until a packet was sent or
      received, causing a spin in select() if the connection was quiescent.
    - ssh-keygen(1): avoid Y2038 problem in printing certificate validity
      lifetimes. Dates past 2^31-1 seconds since epoch were displayed
      incorrectly on some platforms.
    - scp(1): allow spaces to appear in usernames for local to remote and
      scp -3 remote to remote copies.
    - ssh(1)/sshd(8): remove references to ChallengeResponseAuthentication
      in favour of KbdInteractiveAuthentication. The former is what was in
      SSHv1, the latter is what is in SSHv2 (RFC4256) and they were treated
      as somewhat but not entirely equivalent. We retain the old name as a
      deprecated alias so configuration files continue to work as well as a
      reference in the man page for people looking for it.
    - ssh(1)/ssh-add(1)/ssh-keygen(1): fix decoding of X.509 subject name
      when extracting a key from a PKCS#11 certificate.
    - ssh(1): restore blocking status on stdio fds before close. ssh(1)
      needs file descriptors in non-blocking mode to operate but it was not
      restoring the original state on exit. This could cause problems with
      fds shared with other programs via the shell.
    - ssh(1)/sshd(8): switch both client and server mainloops from select(3)
      to pselect(3). Avoids race conditions where a signal may arrive
      immediately before select(3) and not be processed until an event
      fires.
    - ssh(1): sessions started with ControlPersist were incorrectly
      executing a shell when the -N (no shell) option was specified (closes:
      #762633).
    - ssh(1): check if IPQoS or TunnelDevice are already set before
      overriding. Prevents values in config files from overriding values
      supplied on the command line.
    - ssh(1): fix debug message when finding a private key to match a
      certificate being attempted for user authentication. Previously it
      would print the certificate's path, whereas it was supposed to be
      showing the private key's path.
    - sshd(8): match host certificates against host public keys, not private
      keys. Allows use of certificates with private keys held in a
      ssh-agent.
    - ssh(1): add a workaround for a bug in OpenSSH 7.4 sshd(8), which
      allows RSA/SHA2 signatures for public key authentication but fails to
      advertise this correctly via SSH2_MSG_EXT_INFO. This causes clients of
      these server to incorrectly match PubkeyAcceptedAlgorithms and
      potentially refuse to offer valid keys.
    - sftp(1)/scp(1): degrade gracefully if a sftp-server offers the
      limits@openssh.com extension but fails when the client tries to invoke
      it.
    - ssh(1): allow ssh_config SetEnv to override $TERM, which is otherwise
      handled specially by the protocol. Useful in ~/.ssh/config to set TERM
      to something generic (e.g. "xterm" instead of "xterm-256color") for
      destinations that lack terminfo entries.
    - sftp-server(8): the limits@openssh.com extension was incorrectly
      marked as an operation that writes to the filesystem, which made it
      unavailable in sftp-server read-only mode.
    - ssh(1): fix SEGV in UpdateHostkeys debug() message, triggered when the
      update removed more host keys than remain present.
    - Many manual page fixes.
    - sshd(8): handle GIDs > 2^31 in getgrouplist. When compiled in 32bit
      mode, the getgrouplist implementation may fail for GIDs greater than
      LONG_MAX.
    - ssh(1): xstrdup environment variable used by ForwardAgent.
    - sshd(8): don't sigdie() in signal handler in privsep child process;
      this can end up causing sandbox violations.
  * New upstream release (https://www.openssh.com/releasenotes.html#8.6p1):
    - sftp-server(8): add a new limits@openssh.com protocol extension that
      allows a client to discover various server limits, including maximum
      packet size and maximum read/write length.
    - sftp(1): use the new limits@openssh.com extension (when available) to
      select better transfer lengths in the client.
    - sshd(8): Add ModuliFile keyword to sshd_config to specify the location
      of the "moduli" file containing the groups for DH-GEX.
    - ssh_config(5), sshd_config(5): sync CASignatureAlgorithms lists in
      manual pages with the current default.
    - ssh(1): ensure that pkcs11_del_provider() is called before exit.
    - ssh(1), sshd(8): fix problems in string->argv conversion. Multiple
      backslashes were not being dequoted correctly and quoted space in the
      middle of a string was being incorrectly split.
    - ssh(1): return non-zero exit status when killed by signal.
    - sftp-server(8): increase maximum SSH2_FXP_READ to match the maximum
      packet size. Also handle zero-length reads that are not explicitly
      banned by the spec.
    - sshd(8): don't mistakenly exit on transient read errors on the network
      socket (e.g. EINTR, EAGAIN).
    - Create a dedicated contrib/gnome-ssk-askpass3.c source instead of
      building it from the same file as used for GNOME2. Use the GNOME3
      gdk_seat_grab() to manage keyboard/mouse/server grabs for better
      compatibility with Wayland.
    - sshd(8): soft-disallow the fstatat64 syscall in the Linux seccomp-bpf
      sandbox.
  * New upstream release (https://www.openssh.com/releasenotes.html#8.5p1):
    - ssh(1), sshd(8): change the first-preference signature algorithm from
      ECDSA to ED25519.
    - ssh(1), sshd(8): set the TOS/DSCP specified in the configuration for
      interactive use prior to TCP connect.
    - ssh(1), sshd(8): remove the pre-standardization cipher
      rijndael-cbc@lysator.liu.se.
    - ssh(1), sshd(8): update/replace the experimental post-quantum hybrid
      key exchange method based on Streamlined NTRU Prime coupled with
      X25519.
    - ssh(1): disable CheckHostIP by default. It provides insignificant
      benefits while making key rotation significantly more difficult,
      especially for hosts behind IP-based load-balancers (closes: #764027).
    - ssh(1): enable UpdateHostkeys by default subject to some conservative
      preconditions (closes: #875532):
      + The key was matched in the UserKnownHostsFile (and not in the
        GlobalKnownHostsFile).
      + The same key does not exist under another name.
      + A certificate host key is not in use.
      + known_hosts contains no matching wildcard hostname pattern.
      + VerifyHostKeyDNS is not enabled.
      + The default UserKnownHostsFile is in use.
      We expect some of these conditions will be modified or relaxed in
      future.
    - ssh(1), sshd(8): add a new LogVerbose configuration directive that
      allows forcing maximum debug logging by file/function/line
      pattern-lists.
    - ssh(1): when prompting the user to accept a new hostkey, display any
      other host names/addresses already associated with the key.
    - ssh(1): allow UserKnownHostsFile=none to indicate that no known_hosts
      file should be used to identify host keys.
    - ssh(1): add a ssh_config KnownHostsCommand option that allows the
      client to obtain known_hosts data from a command in addition to the
      usual files.
    - ssh(1): add a ssh_config PermitRemoteOpen option that allows the
      client to restrict the destination when RemoteForward is used with
      SOCKS.
    - ssh(1): for FIDO keys, if a signature operation fails with a
      "incorrect PIN" reason and no PIN was initially requested from the
      user, then request a PIN and retry the operation. This supports some
      biometric devices that fall back to requiring PIN when reading of the
      biometric failed, and devices that require PINs for all hosted
      credentials.
    - sshd(8): implement client address-based rate-limiting via new
      sshd_config(5) PerSourceMaxStartups and PerSourceNetBlockSize
      directives that provide more fine-grained control on a per-origin
      address basis than the global MaxStartups limit.
    - ssh(1): Prefix keyboard interactive prompts with "(user@host)" to make
      it easier to determine which connection they are associated with in
      cases like scp -3, ProxyJump, etc. (closes: #343267).
    - sshd(8): fix sshd_config SetEnv directives located inside Match
      blocks.
    - ssh(1): when requesting a FIDO token touch on stderr, inform the user
      once the touch has been recorded.
    - ssh(1): prevent integer overflow when ridiculously large
      ConnectTimeout values are specified, capping the effective value (for
      most platforms) at 24 days.
    - ssh(1): consider the ECDSA key subtype when ordering host key
      algorithms in the client.
    - ssh(1), sshd(8): rename the PubkeyAcceptedKeyTypes keyword to
      PubkeyAcceptedAlgorithms. The previous name incorrectly suggested that
      it control allowed key algorithms, when this option actually specifies
      the signature algorithms that are accepted. The previous name remains
      available as an alias (closes: #933665).
    - ssh(1), sshd(8): similarly, rename HostbasedKeyTypes (ssh) and
      HostbasedAcceptedKeyTypes (sshd) to HostbasedAcceptedAlgorithms.
    - sftp-server(8): add missing lsetstat@openssh.com documentation and
      advertisement in the server's SSH2_FXP_VERSION hello packet.
    - ssh(1), sshd(8): more strictly enforce KEX state-machine by banning
      packet types once they are received. Fixes memleak caused by duplicate
      SSH2_MSG_KEX_DH_GEX_REQUEST.
    - sftp(1): allow the full range of UIDs/GIDs for chown/chgrp on 32bit
      platforms instead of being limited by LONG_MAX.
    - Minor man page fixes (capitalization, commas, etc.)
    - sftp(1): when doing an sftp recursive upload or download of a
      read-only directory, ensure that the directory is created with write
      and execute permissions in the interim so that the transfer can
      actually complete, then set the directory permission as the final
      step.
    - ssh-keygen(1): document the -Z, check the validity of its argument
      earlier and provide a better error message if it's not correct.
    - ssh(1): ignore comments at the end of config lines in ssh_config,
      similar to what we already do for sshd_config.
    - sshd_config(5): mention that DisableForwarding is valid in a
      sshd_config Match block.
    - sftp(1): fix incorrect sorting of "ls -ltr" under some circumstances.
    - ssh(1), sshd(8): fix potential integer truncation of (unlikely)
      timeout values.
    - ssh(1): make hostbased authentication send the signature algorithm in
      its SSH2_MSG_USERAUTH_REQUEST packets instead of the key type. This
      make HostbasedAcceptedAlgorithms do what it is supposed to - filter on
      signature algorithm and not key type.
    - sshd(8): add a number of platform-specific syscalls to the Linux
      seccomp-bpf sandbox.
    - sshd(8): remove debug message from sigchld handler that could cause
      deadlock on some platforms.
    - Sync contrib/ssh-copy-id with upstream.
  * Remove OpenBSD-specific rdomain references from sshd_config(5) (closes:
    #998069).
  * Define MAXHOSTNAMELEN on GNU/Hurd (thanks, Svante Signell; closes:
    #997030).
  * Build-depend on libelogind-dev as an alternative to libsystemd-dev on
    Linux (thanks, Svante Signell; closes: #997035).
  * Backport from upstream:
    - CVE-2021-41617 (closes: #995130): sshd(8) from OpenSSH 6.2 through 8.7
      failed to correctly initialise supplemental groups when executing an
      AuthorizedKeysCommand or AuthorizedPrincipalsCommand, where a
      AuthorizedKeysCommandUser or AuthorizedPrincipalsCommandUser directive
      has been set to run the command as a different user. Instead these
      commands would inherit the groups that sshd(8) was started with.
  * Configure with ac_cv_func_closefrom=no to avoid an incompatibility with
    glibc 2.34's fallback_closefrom function (thanks, William 'jawn-smith'
    Wilson; LP: #1944621).

 -- Colin Watson <cjwatson@debian.org>  Sat, 06 Nov 2021 12:23:47 +0000

openssh (1:8.4p1-6) unstable; urgency=medium

  [ Colin Watson ]
  * Rename ssh group to _ssh (closes: #990456).  It's only used by
    ssh-agent.
  * debian/tests/regress: Don't fail cleanup if haveged isn't running.
  * Backport from upstream:
    - Add includes.h to compat tests (closes: #992134, LP: #1939751).
  * Use "command -v" in maintainer scripts rather than "which".

  [ Athos Ribeiro ]
  * d/systemd/ssh@.service: preserve the systemd managed runtime directory to
    ensure parallel processes will not disrupt one another when halting
    (LP: #1905285) (closes: #934663)

 -- Colin Watson <cjwatson@debian.org>  Thu, 19 Aug 2021 11:04:01 +0100

openssh (1:8.4p1-5) unstable; urgency=high

  * CVE-2021-28041: Fix double free in ssh-agent(1) (closes: #984940).

 -- Colin Watson <cjwatson@debian.org>  Sat, 13 Mar 2021 09:59:40 +0000

openssh (1:8.4p1-4) unstable; urgency=medium

  * Avoid using libmd's <sha2.h> even if it's installed (closes: #982705).

 -- Colin Watson <cjwatson@debian.org>  Mon, 15 Feb 2021 10:25:17 +0000

openssh (1:8.4p1-3) unstable; urgency=medium

  * Backport from upstream:
    - Fix `EOF: command not found` error in ssh-copy-id (closes: #975540).

 -- Colin Watson <cjwatson@debian.org>  Wed, 02 Dec 2020 10:32:23 +0000

openssh (1:8.4p1-2) unstable; urgency=medium

  * Revert incorrect upstream patch that claimed to fix the seccomp sandbox
    on x32 but in fact broke it instead.

 -- Colin Watson <cjwatson@debian.org>  Mon, 26 Oct 2020 17:41:13 +0000

openssh (1:8.4p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/txt/release-8.4):
    - [SECURITY] ssh-agent(1): restrict ssh-agent from signing web
      challenges for FIDO/U2F keys.
    - [SECURITY] ssh-keygen(1): Enable FIDO 2.1 credProtect extension when
      generating a FIDO resident key.
    - ssh-keygen(1): the format of the attestation information optionally
      recorded when a FIDO key is generated has changed. It now includes the
      authenticator data needed to validate attestation signatures.
    - The API between OpenSSH and the FIDO token middleware has changed and
      the SSH_SK_VERSION_MAJOR version has been incremented as a result.
      Third-party middleware libraries must support the current API version
      (7) to work with OpenSSH 8.4.
    - ssh(1), ssh-keygen(1): support for FIDO keys that require a PIN for
      each use. These keys may be generated using ssh-keygen using a new
      "verify-required" option. When a PIN-required key is used, the user
      will be prompted for a PIN to complete the signature operation.
    - sshd(8): authorized_keys now supports a new "verify-required" option
      to require FIDO signatures assert that the token verified that the
      user was present before making the signature. The FIDO protocol
      supports multiple methods for user-verification, but currently OpenSSH
      only supports PIN verification.
    - sshd(8), ssh-keygen(1): add support for verifying FIDO webauthn
      signatures. Webauthn is a standard for using FIDO keys in web
      browsers. These signatures are a slightly different format to plain
      FIDO signatures and thus require explicit support.
    - ssh(1): allow some keywords to expand shell-style ${ENV} environment
      variables. The supported keywords are CertificateFile, ControlPath,
      IdentityAgent and IdentityFile, plus LocalForward and RemoteForward
      when used for Unix domain socket paths.
    - ssh(1), ssh-agent(1): allow some additional control over the use of
      ssh-askpass via a new $SSH_ASKPASS_REQUIRE environment variable,
      including forcibly enabling and disabling its use (closes: #368657).
    - ssh(1): allow ssh_config(5)'s AddKeysToAgent keyword accept a time
      limit for keys in addition to its current flag options. Time-limited
      keys will automatically be removed from ssh-agent after their expiry
      time has passed.
    - scp(1), sftp(1): allow the -A flag to explicitly enable agent
      forwarding in scp and sftp. The default remains to not forward an
      agent, even when ssh_config enables it.
    - ssh(1): add a '%k' TOKEN that expands to the effective HostKey of the
      destination. This allows, e.g., keeping host keys in individual files
      using "UserKnownHostsFile ~/.ssh/known_hosts.d/%k" (closes: #481250).
    - ssh(1): add %-TOKEN, environment variable and tilde expansion to the
      UserKnownHostsFile directive, allowing the path to be completed by the
      configuration.
    - ssh-keygen(1): allow "ssh-add -d -" to read keys to be deleted from
      stdin.
    - sshd(8): improve logging for MaxStartups connection throttling.  sshd
      will now log when it starts and stops throttling and periodically
      while in this state.
    - ssh(1), ssh-keygen(1): better support for multiple attached FIDO
      tokens. In cases where OpenSSH cannot unambiguously determine which
      token to direct a request to, the user is now required to select a
      token by touching it. In cases of operations that require a PIN to be
      verified, this avoids sending the wrong PIN to the wrong token and
      incrementing the token's PIN failure counter (tokens effectively erase
      their keys after too many PIN failures).
    - sshd(8): fix Include before Match in sshd_config (LP: #1885990).
    - ssh(1): close stdin/out/error when forking after authentication
      completes ("ssh -f ...").
    - ssh(1), sshd(8): limit the amount of channel input data buffered,
      avoiding peers that advertise large windows but are slow to read from
      causing high memory consumption.
    - ssh-agent(1): handle multiple requests sent in a single write() to the
      agent.
    - sshd(8): allow sshd_config longer than 256k.
    - sshd(8): avoid spurious "Unable to load host key" message when sshd
      load a private key but no public counterpart.
    - ssh(1): prefer the default hostkey algorithm list whenever we have a
      hostkey that matches its best-preference algorithm.
    - sshd(1): when ordering the hostkey algorithms to request from a
      server, prefer certificate types if the known_hosts files contain a
      key marked as a @cert-authority.
    - ssh(1): perform host key fingerprint comparisons for the "Are you sure
      you want to continue connecting (yes/no/[fingerprint])?" prompt with
      case sensitivity.
    - sshd(8): ensure that address/masklen mismatches in sshd_config yield
      fatal errors at daemon start time rather than later when they are
      evaluated.
    - ssh-keygen(1): ensure that certificate extensions are lexically
      sorted. Previously if the user specified a custom extension then the
      everything would be in order except the custom ones.
    - ssh(1): also compare username when checking for JumpHost loops.
    - ssh-keygen(1): preserve group/world read permission on known_hosts
      files across runs of "ssh-keygen -Rf /path". The old behaviour was to
      remove all rights for group/other.
    - ssh-keygen(1): Mention the [-a rounds] flag in the ssh-keygen manual
      page and usage().
    - sshd(8): explicitly construct path to ~/.ssh/rc rather than relying on
      it being relative to the current directory, so that it can still be
      found if the shell startup changes its directory.
    - sshd(8): when redirecting sshd's log output to a file, undo this
      redirection after the session child process is forked(). Fixes missing
      log messages when using this feature under some circumstances.
    - sshd(8): start ClientAliveInterval bookkeeping before first pass
      through select() loop; fixed theoretical case where busy sshd may
      ignore timeouts from client.
    - ssh(1): only reset the ServerAliveInterval check when we receive
      traffic from the server and ignore traffic from a port forwarding
      client, preventing a client from keeping a connection alive when it
      should be terminated.
    - ssh-keygen(1): avoid spurious error message when ssh-keygen creates
      files outside ~/.ssh.
    - sftp-client(1): fix off-by-one error that caused sftp downloads to
      make one more concurrent request that desired. This prevented using
      sftp(1) in unpipelined request/response mode, which is useful when
      debugging.
    - ssh(1), sshd(8): handle EINTR in waitfd() and timeout_connect()
      helpers.
    - ssh(1), ssh-keygen(1): defer creation of ~/.ssh until we attempt to
      write to it so we don't leave an empty .ssh directory when it's not
      needed.
    - ssh(1), sshd(8): fix multiplier when parsing time specifications when
      handling seconds after other units.
    - sshd(8): always send any PAM account messages. If the PAM account
      stack returns any messages, always send them to the user and not just
      if the check succeeds.
    - gnome-ssh-askpass3: ensure the "close" button is not focused by
      default for SSH_ASKPASS_PROMPT=none prompts. Avoids space/enter
      accidentally dismissing FIDO touch notifications.
    - gnome-ssh-askpass3: allow some control over textarea colour via
      $GNOME_SSH_ASKPASS_FG_COLOR and $GNOME_SSH_ASKPASS_BG_COLOR
      environment variables.
    - Detect the Frankenstein monster of Linux/X32 and allow the sandbox to
      function there.

 -- Colin Watson <cjwatson@debian.org>  Tue, 20 Oct 2020 14:15:17 +0100

openssh (1:8.3p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/txt/release-8.3):
    - [SECURITY] scp(1): when receiving files, scp(1) could become
      desynchronised if a utimes(2) system call failed.  This could allow
      file contents to be interpreted as file metadata and thereby permit an
      adversary to craft a file system that, when copied with scp(1) in a
      configuration that caused utimes(2) to fail (e.g. under a SELinux
      policy or syscall sandbox), transferred different file names and
      contents to the actual file system layout.
    - sftp(1): reject an argument of "-1" in the same way as ssh(1) and
      scp(1) do instead of accepting and silently ignoring it.
    - sshd(8): make IgnoreRhosts a tri-state option: "yes" to ignore
      rhosts/shosts, "no" to allow rhosts/shosts or (new) "shosts-only" to
      allow .shosts files but not .rhosts.
    - sshd(8): allow the IgnoreRhosts directive to appear anywhere in a
      sshd_config, not just before any Match blocks.
    - ssh(1): add %TOKEN percent expansion for the LocalForward and
      RemoteForward keywords when used for Unix domain socket forwarding.
    - all: allow loading public keys from the unencrypted envelope of a
      private key file if no corresponding public key file is present.
    - ssh(1), sshd(8): prefer to use chacha20 from libcrypto where possible
      instead of the (slower) portable C implementation included in OpenSSH.
    - ssh-keygen(1): add ability to dump the contents of a binary key
      revocation list via "ssh-keygen -lQf /path".
    - ssh(1): fix IdentitiesOnly=yes to also apply to keys loaded from a
      PKCS11Provider.
    - ssh-keygen(1): avoid NULL dereference when trying to convert an
      invalid RFC4716 private key.
    - scp(1): when performing remote-to-remote copies using "scp -3", start
      the second ssh(1) channel with BatchMode=yes enabled to avoid
      confusing and non-deterministic ordering of prompts.
    - ssh(1), ssh-keygen(1): when signing a challenge using a FIDO token,
      perform hashing of the message to be signed in the middleware layer
      rather than in OpenSSH code.  This permits the use of security key
      middlewares that perform the hashing implicitly, such as Windows
      Hello.
    - ssh(1): fix incorrect error message for "too many known hosts files."
    - ssh(1): make failures when establishing "Tunnel" forwarding terminate
      the connection when ExitOnForwardFailure is enabled.
    - ssh-keygen(1): fix printing of fingerprints on private keys and add a
      regression test for same.
    - sshd(8): document order of checking AuthorizedKeysFile (first) and
      AuthorizedKeysCommand (subsequently, if the file doesn't match).
    - sshd(8): document that /etc/hosts.equiv and /etc/shosts.equiv are not
      considered for HostbasedAuthentication when the target user is root.
    - ssh(1), ssh-keygen(1): fix NULL dereference in private certificate key
      parsing.
    - ssh(1), sshd(8): more consistency between sets of %TOKENS are accepted
      in various configuration options.
    - ssh(1), ssh-keygen(1): improve error messages for some common PKCS#11
      C_Login failure cases.
    - ssh(1), sshd(8): make error messages for problems during SSH banner
      exchange consistent with other SSH transport-layer error messages and
      ensure they include the relevant IP addresses.
    - ssh-keygen(1), ssh-add(1): when downloading FIDO2 resident keys from a
      token, don't prompt for a PIN until the token has told us that it
      needs one.  Avoids double-prompting on devices that implement
      on-device authentication (closes: #932071).
    - sshd(8), ssh-keygen(1): no-touch-required FIDO certificate option
      should be an extension, not a critical option.
    - ssh(1), ssh-keygen(1), ssh-add(1): offer a better error message when
      trying to use a FIDO key function and SecurityKeyProvider is empty.
    - ssh-add(1), ssh-agent(8): ensure that a key lifetime fits within the
      values allowed by the wire format (u32).  Prevents integer wraparound
      of the timeout values.
    - ssh(1): detect and prevent trivial configuration loops when using
      ProxyJump. bz#3057.
    - On platforms that do not support setting process-wide routing domains
      (all excepting OpenBSD at present), fail to accept a configuration
      attempts to set one at process start time rather than fatally erroring
      at run time.
    - Fix theoretical infinite loop in the glob(3) replacement
      implementation.
  * Update GSSAPI key exchange patch from
    https://github.com/openssh-gsskex/openssh-gsskex:
    - Fix connection through ProxyJump in combination with "GSSAPITrustDNS
      yes".
    - Enable SHA2-based GSSAPI key exchange methods by default as RFC 8732
      was published.
  * Fix or suppress various shellcheck errors under debian/.
  * Use AUTOPKGTEST_TMP rather than the deprecated ADTTMP.
  * Apply upstream patch to fix the handling of Port directives after
    Include (closes: #962035, LP: #1876320).

 -- Colin Watson <cjwatson@debian.org>  Sun, 07 Jun 2020 13:44:04 +0100

openssh (1:8.2p1-4) unstable; urgency=medium

  * Add /etc/ssh/ssh_config.d/ to openssh-client.
  * Add /etc/ssh/sshd_config.d/ to openssh-server (closes: #952427).
  * Install ssh-sk-helper even on non-Linux architectures, though it will
    need an external middleware library in those cases.

 -- Colin Watson <cjwatson@debian.org>  Wed, 26 Feb 2020 10:55:07 +0000

openssh (1:8.2p1-3) unstable; urgency=medium

  * Reupload with -sa to work around confusion with 1:8.2p1-1 being in NEW.

 -- Colin Watson <cjwatson@debian.org>  Sun, 23 Feb 2020 13:30:01 +0000

openssh (1:8.2p1-2) unstable; urgency=medium

  * Move ssh-sk-helper into openssh-client rather than shipping it in a
    separate package.  The extra library dependencies are pretty small, so
    it doesn't seem worth bloating the Packages file.  Suggested by Bastian
    Blank.

 -- Colin Watson <cjwatson@debian.org>  Sun, 23 Feb 2020 11:31:31 +0000

openssh (1:8.2p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/txt/release-8.2, closes:
    #951582):
    - ssh(1), sshd(8), ssh-keygen(1): this release removes the "ssh-rsa"
      (RSA/SHA1) algorithm from those accepted for certificate signatures
      (i.e. the client and server CASignatureAlgorithms option) and will use
      the rsa-sha2-512 signature algorithm by default when the ssh-keygen(1)
      CA signs new certificates.
    - ssh(1), sshd(8): Remove diffie-hellman-group14-sha1 from the default
      key exchange proposal for both the client and server.
    - ssh-keygen(1): The command-line options related to the generation and
      screening of safe prime numbers used by the
      diffie-hellman-group-exchange-* key exchange algorithms have changed.
      Most options have been folded under the -O flag.
    - sshd(8): The sshd listener process title visible to ps(1) has changed
      to include information about the number of connections that are
      currently attempting authentication and the limits configured by
      MaxStartups.
    - Add support for FIDO/U2F hardware authenticators.
    - ssh-keygen(1): Add a "no-touch-required" option when generating
      FIDO-hosted keys, that disables their default behaviour of requiring a
      physical touch/tap on the token during authentication.  Note: not all
      tokens support disabling the touch requirement.
    - sshd(8): Add a sshd_config PubkeyAuthOptions directive that collects
      miscellaneous public key authentication-related options for sshd(8).
      At present it supports only a single option "no-touch-required".  This
      causes sshd to skip its default check for FIDO/U2F keys that the
      signature was authorised by a touch or press event on the token
      hardware.
    - ssh(1), sshd(8), ssh-keygen(1): Add a "no-touch-required" option for
      authorized_keys and a similar extension for certificates.  This option
      disables the default requirement that FIDO key signatures attest that
      the user touched their key to authorize them, mirroring the similar
      PubkeyAuthOptions sshd_config option.
    - ssh-keygen(1): Add support for the writing the FIDO attestation
      information that is returned when new keys are generated via the "-O
      write-attestation=/path" option.  FIDO attestation certificates may be
      used to verify that a FIDO key is hosted in trusted hardware.  OpenSSH
      does not currently make use of this information, beyond optionally
      writing it to disk.
    - Add support for FIDO2 resident keys.
    - sshd(8): Add an Include sshd_config keyword that allows including
      additional configuration files via glob(3) patterns (closes: #631189).
    - ssh(1)/sshd(8): Make the LE (low effort) DSCP code point available via
      the IPQoS directive.
    - ssh(1): When AddKeysToAgent=yes is set and the key contains no
      comment, add the key to the agent with the key's path as the comment.
    - ssh-keygen(1), ssh-agent(1): Expose PKCS#11 key labels and X.509
      subjects as key comments, rather than simply listing the PKCS#11
      provider library path.
    - ssh-keygen(1): Allow PEM export of DSA and ECDSA keys.
    - sshd(8): When clients get denied by MaxStartups, send a notification
      prior to the SSH2 protocol banner according to RFC4253 section 4.2
      (closes: #275458).
    - ssh(1), ssh-agent(1): When invoking the $SSH_ASKPASS prompt program,
      pass a hint to the program to describe the type of desired prompt.
      The possible values are "confirm" (indicating that a yes/no
      confirmation dialog with no text entry should be shown), "none" (to
      indicate an informational message only), or blank for the original
      ssh-askpass behaviour of requesting a password/phrase.
    - ssh(1): Allow forwarding a different agent socket to the path
      specified by $SSH_AUTH_SOCK, by extending the existing ForwardAgent
      option to accepting an explicit path or the name of an environment
      variable in addition to yes/no.
    - ssh-keygen(1): Add a new signature operations "find-principals" to
      look up the principal associated with a signature from an
      allowed-signers file.
    - sshd(8): Expose the number of currently-authenticating connections
      along with the MaxStartups limit in the process title visible to "ps".
    - sshd(8): Make ClientAliveCountMax=0 have sensible semantics: it will
      now disable connection killing entirely rather than the current
      behaviour of instantly killing the connection after the first liveness
      test regardless of success.
    - sshd(8): Clarify order of AllowUsers / DenyUsers vs AllowGroups /
      DenyGroups in the sshd(8) manual page.
    - sshd(8): Better describe HashKnownHosts in the manual page.
    - sshd(8): Clarify that that permitopen=/PermitOpen do no name or
      address translation in the manual page.
    - sshd(8): Allow the UpdateHostKeys feature to function when multiple
      known_hosts files are in use.  When updating host keys, ssh will now
      search subsequent known_hosts files, but will add updated host keys to
      the first specified file only.
    - All: Replace all calls to signal(2) with a wrapper around
      sigaction(2).  This wrapper blocks all other signals during the
      handler preventing races between handlers, and sets SA_RESTART which
      should reduce the potential for short read/write operations.
    - sftp(1): Fix a race condition in the SIGCHILD handler that could turn
      in to a kill(-1).
    - sshd(8): Fix a case where valid (but extremely large) SSH channel IDs
      were being incorrectly rejected.
    - ssh(1): When checking host key fingerprints as answers to new hostkey
      prompts, ignore whitespace surrounding the fingerprint itself.
    - All: Wait for file descriptors to be readable or writeable during
      non-blocking connect, not just readable.  Prevents a timeout when the
      server doesn't immediately send a banner (e.g. multiplexers like
      sslh).
    - sshd_config(5): Document the sntrup4591761x25519-sha512@tinyssh.org
      key exchange algorithm.
  * Add more historical md5sums of /etc/ssh/sshd_config between 1:7.4p1-1
    and 1:7.8p1-1 inclusive (closes: #951220).
  * ssh(1): Explain that -Y is equivalent to -X in the default configuration
    (closes: #951640).
  * Include /etc/ssh/ssh_config.d/*.conf from /etc/ssh/ssh_config and
    /etc/ssh/sshd_config.d/*.conf from /etc/ssh/sshd_config (closes:
    #845315).

 -- Colin Watson <cjwatson@debian.org>  Fri, 21 Feb 2020 16:36:37 +0000

openssh (1:8.1p1-5) unstable; urgency=medium

  * Apply upstream patches to allow clock_nanosleep() and variants in the
    seccomp sandbox, fixing failures with glibc 2.31.
  * Apply upstream patch to deny (non-fatally) ipc in the seccomp sandbox,
    fixing failures with OpenSSL 1.1.1d and Linux < 3.19 on some
    architectures (closes: #946242).

 -- Colin Watson <cjwatson@debian.org>  Sat, 11 Jan 2020 23:55:03 +0000

openssh (1:8.1p1-4) unstable; urgency=medium

  * Apply upstream patch to stop using 2020 as a future date in regress
    tests.

 -- Colin Watson <cjwatson@debian.org>  Thu, 09 Jan 2020 11:42:10 +0000

openssh (1:8.1p1-3) unstable; urgency=medium

  [ Colin Watson ]
  * Drop suggestion of rssh, since it's been removed (see
    https://bugs.debian.org/923691).

  [ Steve Langasek ]
  * Don't build openssh-tests on Ubuntu i386 (closes: #948466).

 -- Colin Watson <cjwatson@debian.org>  Thu, 09 Jan 2020 00:29:58 +0000

openssh (1:8.1p1-2) unstable; urgency=medium

  * Drop "Allow flock and ipc syscall for s390 architecture" patch for now;
    upstream has security concerns with it and it doesn't currently seem to
    be needed.
  * Mark openssh-sftp-server, openssh-tests, ssh, and ssh-askpass-gnome as
    Multi-Arch: foreign; none of them provide any architecture-dependent
    interfaces.

 -- Colin Watson <cjwatson@debian.org>  Wed, 11 Dec 2019 23:53:49 +0000

openssh (1:8.1p1-1) unstable; urgency=medium

  * New upstream release (https://www.openssh.com/txt/release-8.1):
    - ssh(1), sshd(8), ssh-agent(1): Add protection for private keys at rest
      in RAM against speculation and memory side-channel attacks like
      Spectre, Meltdown and Rambleed.  This release encrypts private keys
      when they are not in use with a symmetric key that is derived from a
      relatively large "prekey" consisting of random data (currently 16KB).
    - ssh(1): Allow %n to be expanded in ProxyCommand strings.
    - ssh(1), sshd(8): Allow prepending a list of algorithms to the default
      set by starting the list with the '^' character, e.g.
      "HostKeyAlgorithms ^ssh-ed25519".
    - ssh-keygen(1): Add an experimental lightweight signature and
      verification ability.  Signatures may be made using regular ssh keys
      held on disk or stored in a ssh-agent and verified against an
      authorized_keys-like list of allowed keys.  Signatures embed a
      namespace that prevents confusion and attacks between different usage
      domains (e.g. files vs email).
    - ssh-keygen(1): Print key comment when extracting public key from a
      private key.
    - ssh-keygen(1): Accept the verbose flag when searching for host keys in
      known hosts (i.e. "ssh-keygen -vF host") to print the matching host's
      random-art signature too.
    - All: Support PKCS8 as an optional format for storage of private keys
      to disk.  The OpenSSH native key format remains the default, but PKCS8
      is a superior format to PEM if interoperability with non-OpenSSH
      software is required, as it may use a less insecure key derivation
      function than PEM's.
    - ssh(1): If a PKCS#11 token returns no keys then try to login and
      refetch them.
    - ssh(1): Produce a useful error message if the user's shell is set
      incorrectly during "match exec" processing.
    - sftp(1): Allow the maximum uint32 value for the argument passed to -b
      which allows better error messages from later validation.
    - ssh-keyscan(1): Include SHA2-variant RSA key algorithms in KEX
      proposal; allows ssh-keyscan to harvest keys from servers that disable
      old SHA1 ssh-rsa.
    - sftp(1): Print explicit "not modified" message if a file was requested
      for resumed download but was considered already complete.
    - sftp(1): Fix a typo and make <esc><right> move right to the closest
      end of a word just like <esc><left> moves left to the closest
      beginning of a word.
    - sshd(8): Cap the number of permitopen/permitlisten directives allowed
      to appear on a single authorized_keys line.
    - All: Fix a number of memory leaks (one-off or on exit paths).
    - ssh(1), sshd(8): Check for convtime() refusing to accept times that
      resolve to LONG_MAX.
    - ssh(1): Slightly more instructive error message when the user
      specifies multiple -J options on the command-line (closes: #929669).
    - ssh-agent(1): Process agent requests for RSA certificate private keys
      using correct signature algorithm when requested.
    - sftp(1): Check for user@host when parsing sftp target.  This allows
      user@[1.2.3.4] to work without a path.
    - sshd(8): Enlarge format buffer size for certificate serial number so
      the log message can record any 64-bit integer without truncation.
    - sshd(8): For PermitOpen violations add the remote host and port to be
      able to more easily ascertain the source of the request.  Add the same
      logging for PermitListen violations which were not previously logged
      at all.
    - scp(1), sftp(1): Use the correct POSIX format style for left
      justification for the transfer progress meter.
    - sshd(8): When examining a configuration using sshd -T, assume any
      attribute not provided by -C does not match, which allows it to work
      when sshd_config contains a Match directive with or without -C.
    - ssh(1), ssh-keygen(1): Downgrade PKCS#11 "provider returned no slots"
      warning from log level error to debug.  This is common when attempting
      to enumerate keys on smartcard readers with no cards plugged in.
    - ssh(1), ssh-keygen(1): Do not unconditionally log in to PKCS#11
      tokens.  Avoids spurious PIN prompts for keys not selected for
      authentication in ssh(1) and when listing public keys available in a
      token using ssh-keygen(1).
    - ssh(1), sshd(8): Fix typo that prevented detection of Linux VRF.
    - sshd(8): In the Linux seccomp-bpf sandbox, allow mprotect(2) with
      PROT_(READ|WRITE|NONE) only.  This syscall is used by some hardened
      heap allocators.
    - sshd(8): In the Linux seccomp-bpf sandbox, allow the s390-specific
      ioctl for ECC hardware support.
  * Re-enable hardening on hppa, since the corresponding GCC bug is
    apparently fixed.

 -- Colin Watson <cjwatson@debian.org>  Thu, 10 Oct 2019 10:23:19 +0100

openssh (1:8.0p1-7) unstable; urgency=medium

  [ Daniel Kahn Gillmor ]
  * runit: Correct typo in comment.

  [ Colin Watson ]
  * Apply upstream patch to deny (non-fatally) shmget/shmat/shmdt in preauth
    privsep child, coping with changes in OpenSSL 1.1.1d that broke OpenSSH
    on Linux kernels before 3.19 (closes: #941663).

 -- Colin Watson <cjwatson@debian.org>  Sat, 05 Oct 2019 22:41:11 +0100

openssh (1:8.0p1-6) unstable; urgency=medium

  * Only run dh_runit on openssh-server (closes: #935936).

 -- Colin Watson <cjwatson@debian.org>  Wed, 28 Aug 2019 10:53:18 +0100

openssh (1:8.0p1-5) unstable; urgency=medium

  [ Lorenzo Puliti ]
  * Add a runscript for runit (closes: #933999).

 -- Colin Watson <cjwatson@debian.org>  Tue, 27 Aug 2019 15:18:54 +0100

openssh (1:8.0p1-4) unstable; urgency=medium

  * Use debhelper-compat instead of debian/compat.
  * debian/*.apport:
    - Remove #! lines.
    - Avoid star imports.
    - Fix flake8 errors.
  * Run regression tests against the Python 3 version of Twisted Conch.

 -- Colin Watson <cjwatson@debian.org>  Sat, 03 Aug 2019 13:33:24 +0100

openssh (1:8.0p1-3) unstable; urgency=medium

  * Upload to unstable.

 -- Colin Watson <cjwatson@debian.org>  Mon, 08 Jul 2019 17:19:37 +0100

# Older entries have been removed from this changelog.
# To read the complete changelog use `apt changelog openssh-tests`.
