9.105 Oct 2022 13:45
This release is focused on ing.
This release contains for three minor memory safety problems.
None are believed to be exploitable, but we report most memory safety
Problems as potential security vulnerabilities out of caution.
Ssh-keyscan(1): a one-byte overflow in SSH- banner processing.
Reported by Qualys.
Ssh-keygen(1): double free() in error path of file hashing step in.
Signing/verify code; GHPR333
Ssh-keysign(8): double-free in error path introduced in openssh-8.9.
The portable OpenSSH project now signs commits and release tags.
Using git's recent SSH signature support. The list of developer
Signing keys is included in the repository as.git_allowed_signers
And is cross-signed using the PGP key that is still used to sign
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. bz3438
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 "firstname.lastname@example.org" extension.
Request that allows the client to obtain user/group names that
Correspond to a set of uids/gids.
Sftp(1): use "email@example.com" sftp-server.
Extension (when available) to fill in user/group names for
Sftp-server(8): support the "home-directory" extension reque
9.008 Apr 2022 10:25
This release is focused on ing.
This release switches scp(1) from using the legacy scp/rcp protocol.
to using the SFTP protocol by default.
Legacy scp/rcp performs wildcard expansion of remote filenames (e.g.
scp host:") through the remote shell. This has the side effect of.
Requiring double quoting of shell meta-characters in file names
Included on scp(1) command-lines, otherwise they could be interpreted
as shell commands on the remote side.
This creates one area of potential incompatibility: scp(1) when using.
The SFTP protocol no longer requires this finicky and brittle quoting,
And attempts to use it may cause transfers to fail. We consider the
Removal of the need for double-quoting shell characters in file names
to be a benefit and do not intend to introduce -compatibility for
Legacy scp/rcp in scp(1) when using the SFTP protocol.
Another area of potential incompatibility relates to the use of remote.
Paths relative to other user's home directories, for example -
scp host: user/file /tmp". The SFTP protocol has no native way to.
Expand a user path. However, sftp-server(8) in OpenSSH 8.7 and later
Support a protocol extension "firstname.lastname@example.org" to support
In case of incompatibility, the scp(1) client may be instructed to use.
The legacy scp/rcp using the -O flag.
Ssh(1), sshd(8): use the hybrid Streamlined NTRU Prime + x25519 key.
Exchange method by default.
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.
We are making this change now (i.e. ahead of cryptographically-.
Relevant quantum computers) to prevent "capture now, decrypt
Later" attacks where an adversary who can record and store SSH
8.924 Feb 2022 07:25
This release includes a number of new features.
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)
A detailed description of the feature is available at.
Https://www.openssh.com/agent-restrict.html and the protocol
Extensions are documented in the PROTOCOL and PROTOCOL.agent
Files in the source release.
Ssh(1), sshd(8): add the email@example.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
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.
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 d
8.827 Sep 2021 10:25
This release is motivated primarily by the above deprecation and
Ssh(1): allow the ssh_config(5) CanonicalizePermittedCNAMEs.
Directive to accept a "none" argument to specify the default
Scp(1): when using the SFTP protocol, continue transferring files.
After a transfer error occurs, better matching original scp/rcp
Ssh(1): a number of memory leaks in multiplexing.
Ssh-keygen(1): avoid crash when using the -Y find-principals.
A number of documentation and manual improvements, including
bz#3340, PR#139, PR#215, PR#241, PR#257.
Ssh-agent(1): on FreeBSD, use procctl to disable ptrace(2).
Ssh(1)/sshd(8): some to the pselect(2) replacement.
Compatibility code. bz#3345
SHA1 (openssh-8.8.tar.gz) = 732947082a8998047e839cc0b4c066bf0a7e1a5b.
SHA256 (openssh-8.8.tar.gz) = AngyrPSQH255hnzU1l7y+LlVAUNcGWtuYQIFEl22nRo=.
SHA1 (openssh-8.8p1.tar.gz) = 1eb964897a4372f6fb96c7effeb509ec71c379c9.
SHA256 (openssh-8.8p1.tar.gz) = RZCJDqm7ms5Pca4zF4WjpYIyMkNRYZYO1fyGWI8zH+k=.
Please note that the SHA256 signatures are base64 encoded and not.
Hexadecimal (which is the default for most checksum tools). The PGP
Key used to sign the releases is available from the mirror sites:
Please note that the OpenPGP key used to sign releases has been.
Rotated for this release. The new key has been signed by the previous
Key to provide continuity.
Please read https://www.openssh.com/report.html
Security should be reported directly to firstname.lastname@example.org.
8.721 Aug 2021 15:45
This release contains a mix of new features and -.
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/ prepaths. 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. GHPR#231
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-
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. GHPR#231
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.
Ssh-keygen(1): avoid Y
8.619 Apr 2021 10:45
This release contains mostly.
Sftp-server(8): add a new email@example.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 firstname.lastname@example.org 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.
Unit tests: Add a TEST_SSH_ELAPSED_TIMES environment variable to.
Enable printing of the elapsed time in seconds of each test.
Ssh_config(5), sshd_config(5): sync CASignatureAlgorithms lists in.
Manual pages with the current default. GHPR#174
Ssh(1): ensure that pkcs11_del_provider() is called before exit.
Ssh(1), sshd(8): 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. GHPR#223
Ssh(1): return non-zero exit status when killed by signal; bz#3281.
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); bz3297
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.
Portability build errors bz3293 bz3292 bz3291 bz3278.
Sshd(8): soft-disallow the fstatat64 syscall in the Linux.
Seccomp-bpf sandbox. bz3276
Unit tests: enable autoopt and misc unit tests that were.
SHA1 (openssh-8.6.tar.gz) = a3e93347eed6296faaaceb221e8786391530fccb.
SHA256 (openssh-8.6.tar.gz) = ihmgdEgKfCBRpC0qzdQRwYownrpBf+rsihvk4Rmim8M=.
SHA1 (openssh-8.6p1.tar.gz) = 8f9f0c94317baeb97747d6258f3997b4542762c0.
8.503 Mar 2021 12:25
Ssh(1): this release enables UpdateHostkeys by default subject to.
Some conservative preconditions:
The key was matched in the UserKnownHostsFile (and not in the
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.
Ssh(1), sshd(8): add a new LogVerbose configuration directive for.
That allows forcing maximum delogging by file/function/line
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
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.
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): Prekeyboard interactive prompts with "(user@host)" to.
Make it easier to determine which connection they are associated
With in cases like scp -3, ProxyJump, etc. bz#3224
Sshd(8): sshd_config SetEnv directives located inside Match.
8.429 Sep 2020 03:05
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. bz#3140.
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. bz#69
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". bz#1654
Ssh(1): add -TOKEN, environment variable and tilde expansion to.
The UserKnownHostsFile directive, allowing the path to be
8.328 May 2020 21:45
The focus of this release is ing.
Sshd(8): make IgnoreRhosts a tri-state option: "yes" to ignore.
Rhosts/shosts, "no" 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; bz3148
Ssh(1): add TOKEN percent expansion for the LocalFoward 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
Ssh-keygen(1): add ability to dump the contents of a binary key.
Revocation list via "ssh-keygen -lQf /path" bz#3132
Ssh(1): IdentitiesOnly=yes to also apply to keys loaded from
a PKCS11Provider; bz#3141.
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
Ssh(1): incorrect error message for "too many known hosts.
Ssh(1): make failures when establishing "Tunnel" forwarding.
Terminate the connection when ExitOnForwardFailure is enabled;
Ssh-keygen(1): 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
8.214 Feb 2020 13:05
This release contains some significant new features.
This release adds support for FIDO/U2F hardware authenticators to.
OpenSSH. U2F/FIDO are open standards for inexpensive two-factor
Authentication hardware that are widely used for website
Authentication. In OpenSSH FIDO devices are supported by new public
Key types "ecdsa-sk" and "ed25519-sk", along with corresponding
Ssh-keygen(1) may be used to generate a FIDO token-backed key, after.
Which they may be used much like any other key type supported by
OpenSSH, so long as the hardware token is attached when the keys are
Used. FIDO tokens also generally require the user explicitly authorise
Operations by touching or tapping them.
Generating a FIDO key requires the token be attached, and will usually.
Require the user tap the token to confirm the operation:
ssh-keygen -t ecdsa-sk -f /.ssh/id_ecdsa_sk
Generating public/private ecdsa-sk key pair.
You may need to touch your security key to authorize key generation.
Enter file in which to save the key (/home/djm/.ssh/id_ecdsa_sk):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/djm/.ssh/id_ecdsa_sk
Your public key has been saved in /home/djm/.ssh/id_ecdsa_sk.pub.
This will yield a public and private key-pair. The private key file.
Should be useless to an attacker who does not have access to the
Physical token. After generation, this key may be used like any other
Supported key in OpenSSH and may be listed in authorized_keys, added
to ssh-agent(1), etc. The only additional stipulation is that the FIDO
Token that the key belongs to must be attached when the key is used.
FIDO tokens are most commonly connected via USB but may be attached.
Via other means such as Bluetooth or NFC. In OpenSSH, communication
With the token is managed via a middleware library, specified by the
SecurityKeyProvider directive in ssh/sshd_config(5) or the
SSH_SK_PROVIDER environment variable fo
8.109 Oct 2019 15:45
This release is focused on -ing.
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.
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. bz#3052
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. bz#3003
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. Based on patch from Jakub Jelen; bz#2430
Ssh(1): produce a useful error message if the user's shell is set.
Incorrectly during "match exec" processing. bz#2791
Sftp(1): allow the maximum uint32 value for the argument passed
to -b which allows better error messages from later validation.
Ssh(1): avoid pledge sandbox violations in some combinations of.
Remote forwarding, connection multiplexing and ControlMaster.
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. bz#3029
Sftp(1): print explicit "not modified" message if a file was.
Requested for resumed download but was considered already complete.
Sftp(1): a typo and m
8.018 Apr 2019 03:19
This release is focused on new features and internal refactoring.
Ssh(1), ssh-agent(1), ssh-add(1): Add support for ECDSA keys in
Ssh(1), sshd(8): Add experimental quantum-computing resistant.
Key exchange method, based on a combination of Streamlined NTRU
Prime 4591 761 and X25519.
Ssh-keygen(1): Increase the default RSA key size to 3072 bits.
Following NIST Special Publication 800-57's guidance for a
128-bit equivalent symmetric security level.
Ssh(1): Allow "PKCS11Provider=none" to override later instances of.
The PKCS11Provider directive in ssh_config; bz#2974
Sshd(8): Add a log message for situations where a connection is.
Dropped for attempting to run a command but a sshd_config
ForceCommand=internal-sftp restriction is in effect; bz#2960.
Ssh(1): When prompting whether to record a new host key, accept.
The key fingerprint as a synonym for "yes". This allows the user
to paste a fingerprint obtained out of band at the prompt and.
Have the client do the comparison for you.
Ssh-keygen(1): When signing multiple certificates on a single.
Command-line invocation, allow automatically incrementing the
Certificate serial number.
Scp(1), sftp(1): Accept -J option as an alias to ProxyJump on.
The scp and sftp command-lines.
Ssh-agent(1), ssh-pkcs11-helper(8), ssh-add(1): Accept "-v".
Command-line flags to increase the verbosity of output; pass
Verbose flags though to subprocesses, such as ssh-pkcs11-helper
Started from ssh-agent.
Ssh-add(1): Add a "-T" option to allowing testing whether keys in
an agent are usable by performing a signature and a verification.
Sftp-server(8): Add a "email@example.com" protocol extension.
That replicates the functionality of the existing SSH2_FXP_SETSTAT
Operation but does not follow symlinks. bz#2067
Sftp(1): Add "-h" flag to chown/chgrp/chmod commands to request.
They do not follow symlinks.
Sshd(8): Expose SSH_CONNECTION in the PAM environment. This makes.
The connection 4-tuple available to PAM modules
7.919 Oct 2018 13:05
This is primarily a release.
Ssh(1), sshd(8): allow most port numbers to be specified using.
Service names from getservbyname(3) (typically /etc/services).
Ssh(1): allow the IdentityAgent configuration directive to accept.
Environment variable names. This supports the use of multiple
Agent sockets without needing to use paths.
Sshd(8): support signalling sessions via the SSH protocol.
A limited subset of signals is supported and only for login or.
Command sessions (i.e. not subsystems) that were not subject to
a forced command via authorized_keys or sshd_config. bz#1424.
Ssh(1): support "ssh -Q sig" to list supported signature options.
Also "ssh -Q help" to show the full set of supported queries.
Ssh(1), sshd(8): add a CASignatureAlgorithms option for the.
Client and server configs to allow control over which signature
Formats are allowed for CAs to sign certificates. For example,
This allows banning CAs that sign certificates using the RSA-SHA1
Sshd(8), ssh-keygen(1): allow key revocation lists (KRLs) to.
Revoke keys specified by SHA256 hash.
Ssh-keygen(1): allow creation of key revocation lists directly.
From base64-encoded SHA256 fingerprints. This supports revoking
Keys using only the information contained in sshd(8)
Authentication log messages.
Ssh(1), ssh-keygen(1): avoid spurious "invalid format" errors when.
Attempting to load PEM private keys while using an incorrect
Sshd(8): when a channel message is received from a client.
The stderr file descriptor at the same time stdout is
This avoids stuck processes if they were waiting for.
Stderr to and were insensitive to stdin/out closing. bz#2863
Ssh(1): allow ForwardX11Timeout=0 to disable the untrusted X11.
Forwarding timeout and support X11 forwarding indefinitely.
Previously the behaviour of ForwardX11Timeout=0 was undefined.
Sshd(8): when compiled with GSSAPI support, cache supported method
OIDs regardless of whether GSSAPI authentication is enabled in t
7.824 Aug 2018 14:45
This is primarily a release.
Ssh(1)/sshd(8): add new signature algorithms "rsa-sha2-256-cert-.
V01@openssh.com" and "firstname.lastname@example.org" to
Explicitly force use of RSA/SHA2 signatures in authentication.
Sshd(8): extend the PermitUserEnvironment option to accept a.
Whitelist of environment variable names in addition to global
yes" or "no" settings.
Sshd(8): add a PermitListen directive to sshd_config(5) and a.
Corresponding permitlisten= authorized_keys option that control
Which listen addresses and port numbers may be used by remote
Forwarding (ssh -R...).
Sshd(8): add some countermeasures against timing attacks used for.
Account validation/enumeration. sshd will enforce a minimum time
or each failed authentication attempt consisting of a global 5ms.
Minimum plus an additional per-user 0-4ms delay derived from a
Sshd(8): add a SetEnv directive to allow an administrator to.
Explicitly specify environment variables in sshd_config.
Variables set by SetEnv override the default and client-specified.
Ssh(1): add a SetEnv directive to request that the server sets
an environment variable in the session. Similar to the existing
SendEnv option, these variables are set subject to server.
Ssh(1): allow "SendEnv -PATTERN" to clear environment variables.
Previously marked for sending to the server. bz#1285
Ssh(1)/sshd(8): make UID available as a -expansion everywhere.
That the username is available currently. bz#2870
Ssh(1): allow setting ProxyJump=none to disable ProxyJump.
Sshd(8): avoid observable differences in request parsing that could
be used to determine whether a target user is valid.
All: substantial internal refactoring.
Ssh(1)/sshd(8): some memory leaks; bz#2366.
Ssh(1): a pwent clobber (introduced in openssh-7.7) that could.
Occur during key loading, manifesting as crash on some platforms.
Sshd_config(5): clarify documentation for AuthenticationMethods.
7.703 Apr 2018 20:45
This is primarily a release.
All: Add experimental support for PQC XMSS keys (Extended Hash-
Based Signatures) based on the algorithm described in.
The XMSS signature code is experimental and not compiled in by.
Sshd(8): Add a "rdomain" criteria for the sshd_config Match keyword
to allow conditional configuration that depends on which routing.
Domain a connection was received on (currently supported on OpenBSD
Sshd_config(5): Add an optional rdomain qualifier to the
ListenAddress directive to allow listening on different routing.
Domains. This is supported only on OpenBSD and Linux at present.
Sshd_config(5): Add RDomain directive to allow the authenticated.
Session to be placed in an explicit routing domain. This is only
Supported on OpenBSD at present.
Sshd(8): Add "expiry-time" option for authorized_keys files to.
Allow for expiring keys.
Ssh(1): Add a BindInterface option to allow binding the outgoing.
Connection to an interface's address (basically a more usable
Ssh(1): Expose device allocated for tun/tap forwarding via a new.
T expansion for LocalCommand. This allows LocalCommand to be used
to prepare the interface.
Sshd(8): Expose the device allocated for tun/tap forwarding via a.
New SSH_TUNNEL environment variable. This allows automatic setup of
The interface and surrounding network configuration automatically on
Ssh(1)/scp(1)/sftp(1): Add URI support to ssh, sftp and scp, e.g.
Ssh://user@host or sftp://user@host/path. Additional connection
Parameters described in draft-ietf-secsh-scp-sftp-ssh-uri-04 are not
Implemented since the ssh fingerprint format in the draft uses the
Deprecated MD5 hash with no way to specify the any other algorithm.
Ssh-keygen(1): Allow certificate validity intervals that specify.
Only a start or stop time (instead of both or neither).
Sftp(1): Allow "cd" and "lcd" commands with no explicit path.
7.605 Oct 2017 16:25
This is primarily a release. It also contains substantial
Sftp-server(8): in read-only mode, sftp-server was incorrectly.
Permitting creation of zero-length files. Reported by Michal
Ssh(1): add RemoteCommand option to specify a command in the ssh.
Config file instead of giving it on the client's command line. This
Allows the configuration file to specify the command that will be
Executed on the remote host.
Sshd(8): add ExposeAuthInfo option that enables writing details of.
The authentication methods used (including public keys where
Applicable) to a file that is exposed via a SSH_USER_AUTH
Environment variable in the subsequent session.
Ssh(1): add support for reverse dynamic forwarding. In this mode.
Ssh will act as a SOCKS4/5 proxy and forward connections
to destinations requested by the remote SOCKS client. This mode
is requested using extended syntax for the -R and RemoteForward.
Options and, because it is implemented solely at the client,
Does not require the server be updated to be supported.
Sshd(8): allow LogLevel directive in sshd_config Match blocks;
Ssh-keygen(1): allow inclusion of arbitrary string or flag.
Certificate extensions and critical options.
Ssh-keygen(1): allow ssh-keygen to use a key held in ssh-agent as
a CA when signing certificates. bz#2377.
Ssh(1)/sshd(8): allow IPQoS=none in ssh/sshd to not set an explicit
ToS/DSCP value and just use the operating system default.
Ssh-add(1): added -q option to make ssh-add quiet on success.
Ssh(1): expand the StrictHostKeyChecking option with two new.
Settings. The first "accept-new" will automatically accept
Hitherto-unseen keys but will refuse connections for changed or
Invalid hostkeys. This is a safer subset of the current behaviour
of StrictHostKeyChecking=no. The second setting "off", is a synonym.
For the current behaviour of StrictHostKeyChecking=no: accept new
Host keys, and continue connection for hosts with incorrect
7.521 Mar 2017 22:25
This is a release.
Ssh(1), sshd(8): weakness in CBC padding oracle countermeasures.
That allowed a variant of the attack in OpenSSH 7.3 to proceed.
Note that the OpenSSH client disables CBC ciphers by default, sshd.
Offers them as lowest-preference options and will remove them by
Default entriely in the next release. Reported by Jean Paul
Degabriele, Kenny Paterson, Martin Albrecht and Torben Hansen of
Royal Holloway, University of London.
Sftp-client(1): portable OpenSSH only On Cygwin, a client making
a recursive file transfer could be maniuplated by a hostile server to.
Perform a path-traversal attack. creating or modifying files outside
of the intended target directory. Reported by Jann Horn of Google
Ssh(1), sshd(8): Support "=-" syntax to easily remove methods from.
Algorithm lists, e.g. Ciphers=-*cbc. bz#2671
Sshd(1): NULL dereference crash when key exchange start.
Messages are sent out of sequence.
Ssh(1), sshd(8): Allow form-feed characters to appear in.
Sshd(8): regression in OpenSSH 7.4 support for the.
Server-sig-algs extension, where SHA2 RSA signature methods were
Not being correctly advertised. bz#2680
Ssh(1), ssh-keygen(1): a number of case-sensitivity in.
Known_hosts processing. bz#2591 bz#2685
Ssh(1): Allow ssh to use certificates accompanied by a private key.
File but no corresponding plain *.pub public key. bz#2617
Ssh(1): When updating hostkeys using the UpdateHostKeys option.
Accept RSA keys if HostkeyAlgorithms contains any RSA keytype.
Previously, ssh could ignore RSA keys when only the ssh-rsa-sha2-*.
Methods were enabled in HostkeyAlgorithms and not the old ssh-rsa
Ssh(1): Detect and report excessively long configuration file.
Merge a number of found by Coverity and reported via Redhat.
And FreeBSD. Includes for some memory and file descriptor
Leaks in error paths. bz#2687
Ssh-keyscan(1): Correctly hash hosts with a port number. bz#2692.
7.420 Dec 2016 10:05
This is primarily a release.
Ssh-agent(1): Will now refuse to load PKCS#11 modules from paths.
Outside a trusted whitelist (run-time configurable). Requests to
Load modules could be passed via agent forwarding and an attacker
Could attempt to load a hostile PKCS#11 module across the forwarded
Agent channel: PKCS#11 modules are shared libraries, so this would
Result in code execution on the system running the ssh-agent if the
Attacker has control of the forwarded agent-socket (on the host
Running the sshd server) and the ability to write to the filesystem
of the host running ssh-agent (usually the host running the ssh.
Client). Reported by Jann Horn of Project Zero.
Sshd(8): When privilege separation is disabled, forwarded Unix-.
Domain sockets would be created by sshd(8) with the privileges of
root' instead of the authenticated user. This release refuses
Unix-domain socket forwarding when privilege separation is disabled.
Privilege separation has been enabled by default for 14 years).
Reported by Jann Horn of Project Zero.
Sshd(8): Avoid theoretical leak of host private key material to.
Privilege-separated child processes via realloc() when reading
Keys. No such leak was observed in practice for normal-sized keys,
Nor does a leak to the child processes directly expose key material
to unprivileged users. Reported by Jann Horn of Project Zero.
Sshd(8): The shared memory manager used by pre-authentication.
Compression support had a bounds checks that could be elided by
Some optimising compilers. Additionally, this memory manager was
Incorrectly accessible when pre-authentication compression was
Disabled. This could potentially allow attacks against the
Privileged monitor process from the sandboxed privilege-separation
Process (a compromise of the latter would be required first).
This release removes support for pre-authentication compression.
From sshd(8). Reported by Guido Vranken using the Stack unstable
Optimisation identification tool (http://css.csail.mi
7.309 Oct 2016 04:05
This is primarily a release.
Sshd(8): Mitigate a potential denial-of-service attack against.
The system's crypt(3) function via sshd(8). An attacker could
Send very long passwords that would cause excessive CPU use in
Crypt(3). sshd(8) now refuses to accept password authentication
Requests of length greater than 1024 characters. Independently
Reported by Tomas Kuthan (Oracle), Andres Rojas and Javier Nieto.
Sshd(8): Mitigate timing differences in password authentication.
That could be used to discern valid from invalid account names
When long passwords were sent and particular password hashing
Algorithms are in use on the server. CVE-2016-6210, reported by
EddieEzra.Harari at verint.com.
Ssh(1), sshd(8): observable timing weakness in the CBC padding.
Oracle countermeasures. Reported by Jean Paul Degabriele, Kenny
Paterson, Torben Hansen and Martin Albrecht. Note that CBC ciphers.
Are disabled by default and only included for legacy compatibility.
Ssh(1), sshd(8): Improve operation ordering of MAC verification for
Encrypt-then-MAC (EtM) mode transport MAC algorithms to verify the
MAC before decrypting any ciphertext. This removes the possibility
of timing differences leaking facts about the plaintext, though no.
Such leakage has been observed. Reported by Jean Paul Degabriele,
Kenny Paterson, Torben Hansen and Martin Albrecht.
Sshd(8): (portable only) Ignore PAM environment vars when
UseLogin=yes. If PAM is configured to read user-specified.
Environment variables and UseLogin=yes in sshd_config, then a
Hostile local user may attack /bin/login via LD_PRELOAD or
Similar environment variables set via PAM. CVE-2015-8325,
Found by Shayan Sadigh.
Ssh(1): Add a ProxyJump option and corresponding -J command-line.
Flag to allow simplified indirection through a one or more SSH
Bastions or "jump hosts".
Ssh(1): Add an IdentityAgent option to allow specifying specific.
Agent sockets instead of accepting one from the environment.
Ssh(1): Allow ExitOnForwar
7.229 Feb 2016 18:05
This is primarily a release.
Ssh(1), sshd(8): remove unfinished and unused roaming code (was.
Already forcibly disabled in OpenSSH 7.1p2).
Ssh(1): eliminate fallback from untrusted X11 forwarding to.
Trusted forwarding when the X server disables the SECURITY
Ssh(1), sshd(8): increase the minimum modulus size supported for.
Diffie-hellman-group-exchange to 2048 bits.
Sshd(8): pre-auth sandboxing is now enabled by default (previous.
Releases enabled it for new installations via sshd_config).
All: add support for RSA signatures using SHA-256/512 hash.
Algorithms based on draft-rsa-dsa-sha2-256-03.txt and
Ssh(1): Add an AddKeysToAgent client option which can be set to.
yes', 'no', 'ask', or 'confirm', and defaults to 'no'. When.
Enabled, a private key that is used during authentication will be
Added to ssh-agent if it is running (with confirmation enabled if
Set to 'confirm').
Sshd(8): add a new authorized_keys option "restrict" that includes.
All current and future key restrictions (no-*-forwarding, etc.).
Also add permissive versions of the existing restrictions, e.g.
no-pty" - "pty". This simplifies the task of setting up.
Restricted keys and ensures they are maximally-restricted,
Regardless of any permissions we might implement in the future.
Ssh(1): add ssh_config CertificateFile option to explicitly list.
Ssh-keygen(1): allow ssh-keygen to change the key comment for all.
Ssh-keygen(1): allow fingerprinting from standard input, e.g.
ssh-keygen -lf -".
Ssh-keygen(1): allow fingerprinting multiple public keys in a.
File, e.g. "ssh-keygen -lf /.ssh/authorized_keys" bz#1319
Sshd(8): support "none" as an argument for sshd_config
Foreground and ChrootDirectory. Useful inside Match blocks to.
Override a global default. bz#2486
Ssh-keygen(1): support multiple certificates (one per line) and.
Reading from standard input (using "-f -") for "ssh-keygen -L"
7.122 Aug 2015 11:45
This is a release.
sshd(8): OpenSSH 7.0 contained a logic error in PermitRootLogin=
prohibit-password/without-password that could, depending on
compile-time configuration, permit password authentication to
root while preventing other forms of authentication. This problem
was reported by Mantas Mikulenas.
ssh(1), sshd(8): add compatibility workarounds for FuTTY.
ssh(1), sshd(8): refine compatibility workarounds for WinSCP.
a number of memory faults (double-free, free of uninitialised
memory, etc) in ssh(1) and ssh-keygen(1). Reported by Mateusz
SHA1 (openssh-7.1.tar.gz) = 06c1db39f33831fe004726e013b2cf84f1889042.
SHA256 (openssh-7.1.tar.gz) = H7U1se9EoBmhkKi2i7lqpMX9QHdDTsgpu7kd5VZUGSY=.
SHA1 (openssh-7.1p1.tar.gz) = ed22af19f962262c493fcc6ed8c8826b2761d9b6.
SHA256 (openssh-7.1p1.tar.gz) = /AptLR0GPVxm3/2VJJPQzaJWytIE9oHeD4TvhbKthCg=.
Please note that the SHA256 signatures are base64 encoded and not.
hexadecimal (which is the default for most checksum tools). The PGP
key used to sign the releases is available as RELEASE_KEY.asc from
the mirror sites.
Please read http://www.openssh.com/report.html
Security should be reported directly to email@example.com.
OpenSSH is brought to you by Markus Friedl, Niels Provos, Theo de Raadt.
Kevin Steves, Damien Miller, Darren Tucker, Jason McIntyre, Tim Rice and
7.013 Aug 2015 10:25
This focus of this release is primarily to deprecate weak, legacy
and/or unsafe cryptography.
sshd(8): OpenSSH 6.8 and 6.9 incorrectly set TTYs to be world-
writable. Local attackers may be able to write arbitrary messages
to logged-in users, including terminal escape sequences.
Reported by Nikolay Edigaryev.
sshd(8): Portable OpenSSH only: Fixed a privilege separation
weakness related to PAM support. Attackers who could successfully
compromise the pre-authentication process for remote code
execution and who had valid credentials on the host could
impersonate other users. Reported by Moritz Jodeit.
sshd(8): Portable OpenSSH only: Fixed a use-after-free bug
related to PAM support that was reachable by attackers who could
compromise the pre-authentication process for remote code
execution. Also reported by Moritz Jodeit.
sshd(8): fix circumvention of MaxAuthTries using keyboard-
interactive authentication. By specifying a long, repeating
keyboard-interactive "devices" string, an attacker could request
the same authentication method be tried thousands of times in
a single pass. The LoginGraceTime timeout in sshd(8) and any
authentication failure delays implemented by the authentication
mechanism itself were still applied. Found by Kingcope.
Support for the legacy SSH version 1 protocol is disabled by
default at compile time.
Support for the 1024-bit diffie-hellman-group1-sha1 key exchange
is disabled by default at run-time. It may be re-enabled using
the instructions at http://www.openssh.com/legacy.html.
Support for ssh-dss, ssh-dss-cert- host and user keys is disabled
by default at run-time. These may be re-enabled using the
instructions at http://www.openssh.com/legacy.html.
Support for the legacy v00 cert format has been removed.
The default for the sshd_config(5) PermitRootLogin option has
changed from "yes" to "prohibit-password".
PermitRootLogin=without-password/prohibit-password now bans all
6.902 Jul 2015 13:45
This is primarily a bugfix release.
ssh(1): when forwarding X11 connections with ForwardX11Trusted=no,
connections made after ForwardX11Timeout expired could be permitted
and no longer subject to XSECURITY restrictions because of an
ineffective timeout check in ssh(1) coupled with "fail open"
behaviour in the X11 server when clients attempted connections with
expired credentials. This problem was reported by Jann Horn.
ssh-agent(1): fix weakness of agent locking (ssh-add -x) to
password guessing by implementing an increasing failure delay,
storing a salted hash of the password rather than the password
itself and using a timing-safe comparison function for verifying
unlock attempts. This problem was reported by Ryan Castellucci.
ssh(1), sshd(8): promote firstname.lastname@example.org to be the
sshd(8): support admin-specified arguments to AuthorizedKeysCommand;
sshd(8): add AuthorizedPrincipalsCommand that allows retrieving
authorized principals information from a subprocess rather than
ssh(1), ssh-add(1): support PKCS#11 devices with external PIN
entry devices bz#2240.
sshd(8): allow GSSAPI host credential check to be relaxed for
multihomed hosts via GSSAPIStrictAcceptorCheck option; bz#928.
ssh-keygen(1): support "ssh-keygen -lF hostname" to search
known_hosts and print key hashes rather than full keys.
ssh-agent(1): add -D flag to leave ssh-agent in foreground without
enabling debug mode; bz#2381.
ssh(1), sshd(8): deprecate legacy SSH2_MSG_KEX_DH_GEX_REQUEST_OLD
message and do not try to use it against some 3rd-party SSH
implementations that use it (older PuTTY, WinSCP).
Many fixes for problems caused by compile-time deactivation of
ssh(1), sshd(8): cap DH-GEX group size at 4Kbits for Cisco
implementations as some would fail when attempting to use group
sizes 4K; bz#2209.
ssh(1): fix out-of-bound read in EscapeChar configuration option
sshd(8): fix application of Per
6.819 Mar 2015 00:25
This is a major release, containing a number of new features as well as a large internal re-factoring. Potentially-incompatible changes. sshd: UseDNS now defaults to 'no'. Configurations that match against the client host name may need to re-enable it or convert to matching against addresses. New Features. Much of OpenSSH's internal code has been re-factored to be more library-like. These changes are mostly not user-visible, but have greatly improved OpenSSH's testability and internal layout. Add FingerprintHash option to ssh and sshd, and equivalent command-line flags to the other tools to control algorithm used for key fingerprints. The default changes from MD5 to SHA256 and format from hex to base64. Fingerprints now have the hash algorithm prepended. An example of the new format: SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE Please note that visual host keys will also be different. ssh, sshd: Experimental host key rotation support. Add a protocol extension for a server to inform a client of all its available host keys after authentication has completed. The client may record the keys in known_hosts, allowing it to upgrade to better host key algorithms and a server to gracefully rotate its keys. The client side of this is controlled by a UpdateHostkeys config option . ssh: Add a ssh_config HostbasedKeyType option to control which host public key types are tried during host-based authentication. ssh, sshd: fix connection-killing host key mismatch errors when sshd offers multiple ECDSA keys of different lengths. ssh: when host name canonicalisation is enabled, try to parse host names as addresses before looking them up for canonicalisation. fixes bzand avoiding needless DNS lookups in some cases. ssh-keygen, sshd: Key Revocation Lists no longer require OpenSSH to be compiled with OpenSSL support. ssh, ssh-keysign: Make ed25519 keys work for host based authentication. sshd: SSH protocol v.1 workaround for the Meyer, et al, Bleichenbacher Side Channel Attack. Fa
6.708 Oct 2014 23:58
The default set of ciphers and MACs has been altered to
remove unsafe algorithms. In particular, CBC ciphers and arcfour* are disabled by default.
Support for tcpwrappers/libwrap has been removed.
Major internal refactoring to begin to make part of OpenSSH usable
as a library. So far the wire parsing, key handling and KRL code
has been refactored. Please note that we do not consider the API
stable yet, nor do we offer the library in separable form.
Add support for Unix domain socket forwarding.
Add support for SSHFP DNS records for
ED25519 key types.
Allow resumption of interrupted sftp uploads.
When rekeying, skip file/DNS lookups of the hostkey if it
is the same as the one sent during initial key exchange.
Allow explicit ::1 and 127.0.0.1 forwarding bind
addresses when GatewayPorts=no; allows client to choose address family.
Add a C escape sequence for LocalCommand and ControlPath.
Added unit and fuzz tests for refactored code. These are run
automatically in portable OpenSSH via the "make tests" target.
Many bugfixes were applied.