Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
297 commits
Select commit Hold shift + click to select a range
266647c
upstream: support ed25519 signatures via libcrypto. Mostly by Jeremy
djmdjm Oct 30, 2025
94a7825
upstream: move crypto_hash_sha512() to be inline in crypto_api.h, saves
djmdjm Oct 30, 2025
9dcd640
upstream: Check tmux version and skip if too old. ok djm@
daztucker Oct 23, 2025
249224a
upstream: Prepare for gcc 3 leaving the building, COMPILER_VERSION
Oct 23, 2025
c2a1789
upstream: don't link hash.c
djmdjm Oct 30, 2025
a5f6385
fix linking for sk-dummy.so, used in tests
djmdjm Oct 31, 2025
57e347b
rename openbsd-compat sha2.h -> bsd-sha2.h
djmdjm Oct 31, 2025
590a260
add sshlog() replacement to sk-dummy.so
djmdjm Oct 31, 2025
7e2f89b
skip pkcs11 tests when built --without-openssl
djmdjm Oct 31, 2025
2425d7f
check PAM user against previous user, not pw_name
djmdjm Oct 31, 2025
d87e7f0
Add OpenBSD 7.8 test target.
daztucker Oct 31, 2025
7e5d404
Support using git for OpenBSD src tree tests.
daztucker Oct 31, 2025
f2ff1d9
upstream: cleanup file descriptors across PKCS#11 client/helper
djmdjm Oct 31, 2025
1399419
upstream: move stringlist_append() and stringlist_free() to misc.c
djmdjm Nov 6, 2025
9bea081
upstream: Remove some unnecessary checks in
djmdjm Nov 7, 2025
e57ef43
upstream: Cope with recent changes and don't link hash.c.
Nov 1, 2025
9d8c686
upstream: link against ed25519-openssl.c instead of ed25519.c
djmdjm Nov 6, 2025
a1c526f
upstream: unit test for stringlist_append() and stringlist_free()
djmdjm Nov 6, 2025
5794f2a
upstream: sk-dummy.so needs sshlog() stub after ed25519-openssl.c
djmdjm Nov 6, 2025
1f1d63e
upstream: Escape SSH_AUTH_SOCK paths that are sent to the shell as
djmdjm Nov 7, 2025
48d8293
escape quotes in yaml
djmdjm Nov 7, 2025
5a104d8
try single quotes instead of escaped quotes
djmdjm Nov 7, 2025
d128133
octal-escape the colon character
djmdjm Nov 7, 2025
08786bb
Don't use OpenSSL's ed25519 if built without EC.
daztucker Nov 12, 2025
7cb3ea4
Simplify git command to avoid yaml syntax error.
daztucker Nov 12, 2025
c09eeba
upstream: sshkey_ec_validate_public: zap trailing blank I missed on
botovq Nov 7, 2025
84347d6
upstream: update our ML-KEM implementation to upstream libcrux
djmdjm Nov 13, 2025
6aba700
upstream: sync support for systems that lack __builtin_popcount() from
djmdjm Nov 13, 2025
d9955e4
upstream: Remove calls to OpenSSL_add_all_algorithms()
daztucker Nov 13, 2025
90501bc
Remove remaining OpenSSL_add_all_algorithms() calls.
daztucker Nov 13, 2025
ec41739
seccomp sandbox: allow uname(3)
Icenowy Nov 7, 2025
e2b93e1
Move libcrypto init check into entropy.c.
daztucker Nov 13, 2025
2fe6e40
upstream: Ensure both sides of the test are non-NULL instead of just
daztucker Nov 17, 2025
bad220d
Remove obsolete CVSID.
daztucker Nov 17, 2025
e4cc5ab
upstream: don't strnvis() log messages that are going to be logged
djmdjm Nov 17, 2025
58533bb
upstream: Export XDG_RUNTIME_DIR to child ssh sessions
jcourreges Nov 17, 2025
ccad76e
Pull in rev 1.17 for spelling fix.
daztucker Nov 18, 2025
e3f1fbb
upstream: Plug leaks while parsing Match blocks. Coverity CID
daztucker Nov 20, 2025
d68d528
upstream: Plug leaks while parsing Match blocks. Coverity CID
daztucker Nov 20, 2025
a8718c3
upstream: Free opts in FAIL_TEST. It should always be NULL anyway so
daztucker Nov 20, 2025
dec6334
upstream: add a sshbuf_get_nulterminated_string() function to pull a
djmdjm Nov 21, 2025
71e8779
upstream: unit tests for sshbuf_get_nulterminated_string()
djmdjm Nov 21, 2025
2efdfbb
Add VM CI and CIFuzz status badges.
daztucker Nov 21, 2025
643222d
Update OSSFuzz link to current bug tracker.
daztucker Nov 21, 2025
2238c48
upstream: pkcs11_fetch_ecdsa_pubkey: use ASN1_STRING accessors
botovq Nov 23, 2025
69965ae
upstream: When loading FIDO2 resident keys, set the comment to the
djmdjm Nov 24, 2025
5e7c3f3
upstream: When testing PKCS11, explicitly allow the module path in
djmdjm Nov 24, 2025
1fdc3c6
upstream: give ssh-agent more time to start in tests; requested in
djmdjm Nov 24, 2025
6157e1c
upstream: don't set the PerSourceNetBlockSize IPv6 mask if sscanf
djmdjm Nov 25, 2025
c23122c
upstream: avoid leak of fingerprint on error path; from Lidong Yan via
djmdjm Nov 25, 2025
2d0d266
upstream: Support writing ED25519 keys in PKCS8 format. GHPR570 from
djmdjm Nov 25, 2025
0fb1f3c
upstream: move mention of default MaxStartups (which uses the
djmdjm Nov 25, 2025
52037ed
upstream: Add Escape option ~I that shows information about the current
daztucker Nov 27, 2025
2e8b5de
upstream: Add compression stats to ~I connection info escape
daztucker Nov 29, 2025
8fce552
upstream: Add local hostname and pid to ~I escape connection info,
daztucker Nov 29, 2025
6662239
upstream: correctly quote filenames in verbose output for local->local
djmdjm Dec 3, 2025
eb97fc2
upstream: Add an ssh -Oconninfo command
daztucker Dec 5, 2025
b7dc1d9
upstream: Add test for ssh -Oconninfo mux command.
daztucker Dec 5, 2025
f45cd24
upstream: Add convtime_double() that converts a string interval,
djmdjm Dec 5, 2025
c48de35
upstream: convert PerSourcePenalties to using floating point time,
djmdjm Dec 5, 2025
f4e79a4
upstream: unit tests for convtime_double()
djmdjm Dec 5, 2025
89a67a0
upstream: Shell compatibility fix.
daztucker Dec 5, 2025
70a01a7
Set SSH_REGRESS_TMP after making tmpdir.
daztucker Dec 5, 2025
5f5d1af
upstream: ASSERT_DOUBLE_* test helpers
djmdjm Dec 5, 2025
c99a30d
upstream: Don't check compressions stats when ssh does not support
daztucker Dec 6, 2025
ab164f6
upstream: Append a newline, otherwise some sed's won't output anything.
daztucker Dec 6, 2025
45aca67
upstream: spaces->tab
daztucker Dec 7, 2025
f62868e
upstream: Avoid "if ! thing || ! otherthing; then" constructs since
daztucker Dec 7, 2025
f701869
upstream: allow network programs select DSCP_VA for network ToS
Dec 5, 2025
185459d
Define IPTOS_DSCP_VA if not already defined.
daztucker Dec 7, 2025
f086faf
Remove generated compat includes during distclean.
daztucker Dec 7, 2025
d05b704
Add OpenBSD 7.8 VM test target.
daztucker Dec 7, 2025
70ad2e9
upstream: increment correct variable when counting group
djmdjm Dec 8, 2025
a1e37f0
upstream: There is a warning next to the authorized_keys command=""
djmdjm Dec 8, 2025
24f32f7
upstream: errant line
djmdjm Dec 8, 2025
94bf115
upstream: add a GssDelegateCreds option for the server, controlling
djmdjm Dec 8, 2025
49480f1
upstream: Add 'invaliduser' penalty to PerSourcePenalties, which is
daztucker Dec 16, 2025
f878d7c
upstream: Plug leak in ssh_digest_memory on error path.
daztucker Dec 16, 2025
3ab346a
upstream: fix markup, .CM -> .Cm
jonathangray Dec 18, 2025
4c9de15
upstream: new sentence, new line
jonathangray Dec 18, 2025
4e0f2de
upstream: detect invalid sshd_config Subsystem directives inside
djmdjm Dec 19, 2025
831e6db
upstream: don't crash at connection time if the main sshd_config
djmdjm Dec 19, 2025
81e5bb8
upstream: check that invalid subsystem directives inside Match
djmdjm Dec 19, 2025
345892b
upstream: regression test for bz3906: sshd crashing at connection
djmdjm Dec 19, 2025
0b98be7
upstream: correctly check subsystem command is not the empty string
djmdjm Dec 19, 2025
b652322
upstream: typo in comment
djmdjm Dec 19, 2025
daf6bdd
upstream: add a "ssh -O channels user@host" multiplexing command to
djmdjm Dec 22, 2025
aaac8c6
upstream: Don't misuse the sftp limits extension's open-handles
djmdjm Dec 22, 2025
5166b6c
upstream: When certificate support was added to OpenSSH,
djmdjm Dec 22, 2025
adca2f4
upstream: don't try to test webauthn signatures. Nothing in OpenSSH
djmdjm Dec 22, 2025
ecdf9b9
upstream: regression tests for certificates with empty principals
djmdjm Dec 22, 2025
dfd710e
upstream: return 0 in void function; spotted by clang -Wextra
djmdjm Dec 22, 2025
09daf2a
upstream: correctly quote wildcard host certificate principal name,
djmdjm Dec 22, 2025
6eafc52
Update ssh-agent.1
LudovicRousseau Dec 27, 2025
55b6b16
upstream: Add sshbuf_consume_upto_child(), to similify particular
djmdjm Dec 29, 2025
ca313fe
upstream: Enforce maximum packet/block limit during
djmdjm Dec 30, 2025
dd49a87
upstream: Remove bug compatibility for implementations that don't
djmdjm Dec 30, 2025
b9c3187
upstream: unit tests for sshbuf_consume_upto_child()
djmdjm Dec 30, 2025
5f2bc9c
upstream: avoid possible NULL deref if
djmdjm Dec 30, 2025
ea367b4
upstream: test the right thing, doofus
djmdjm Dec 30, 2025
a6f8f79
upstream: rewrite SOCKS4/4A/5 parsing code to use sshbuf functions
djmdjm Jan 4, 2026
1cc936b
upstream: Fill entropy in a single operation instead of hundreds.
daztucker Jan 20, 2026
b0d0b71
upstream: If editline has been switched to vi mode (i.e. via "bind
sthen Jan 21, 2026
d7950ac
upstream: In ssh(1), don't try to match certificates held in an
djmdjm Jan 21, 2026
409dc95
upstream: Make it clear that DenyUsers/DenyGroups overrides
millert Jan 22, 2026
832a770
upstream: Implement "query" extension from
djmdjm Jan 27, 2026
6463960
upstream: Implement missing pieces of FIDO/webauthn signature support,
djmdjm Feb 5, 2026
91c4d42
upstream: remove vestige of when we supported running without privsep
djmdjm Feb 6, 2026
01bddc0
Add OpenIndiana VM test target.
daztucker Dec 31, 2025
f0b7ecf
Run tests on older OmniOS version too.
daztucker Dec 31, 2025
dfbb852
Remove obsolete comments.
daztucker Dec 31, 2025
86e0f4a
Split sudo out to its own install line.
daztucker Jan 1, 2026
d84dbcc
Add a GSSAPI authentication test
zacikpa Jan 29, 2026
b83c0bb
Enable gss-auth tests on Kerberos test configs.
daztucker Feb 6, 2026
1160092
upstream: Typo fixes, mostly in comments.
daztucker Feb 6, 2026
5b12d83
Typographical Fixes
THE-Spellchecker Jan 4, 2026
9c4949c
upstream: Fetch the error reason from libcrypto
daztucker Feb 6, 2026
670f7d2
upstream: Adjust Makefiles to include just-added
daztucker Feb 6, 2026
15fe1ce
upstream: bit of webauthn support missed in previous commit
djmdjm Feb 7, 2026
a393759
Fix ut_type for btmp records
sm00th Nov 18, 2025
77e41d0
Resync with upstream (unused header and whitespace).
daztucker Feb 7, 2026
3fd88ca
Resync headers with upstream.
daztucker Feb 7, 2026
9e585f1
Resync minor format diffs with upstream.
daztucker Feb 7, 2026
4fe79e3
Move poll.h include to resync with upstream.
daztucker Feb 7, 2026
6decbb9
Move paths.h and poll.h includes to resync with upstream.
daztucker Feb 7, 2026
ccc1faf
upstream: Move ssherr.h to where portable needs it.
daztucker Feb 7, 2026
9ebce88
upstream: Also check for EWOULDBLOCK on system error. This is the
daztucker Feb 7, 2026
ad63236
Remove unused <netinet/in_systm.h> includes.
sortie Nov 2, 2024
2a1a257
upstream: misc.h is needed for ForwardOptions in servconf.h.
daztucker Feb 7, 2026
ecaaa4f
Move USE_SYSTEM_GLOB into a glob.h compat shim.
daztucker Feb 8, 2026
8605ed2
upstream: Move setting of user, service and style earlier since
daztucker Feb 8, 2026
d6c672a
upstream: Remove sys/poll.h since we also have poll.h.
daztucker Feb 8, 2026
6adb655
upstream: Make ssh optionally build with Kerberos 5 against the
daztucker Feb 8, 2026
249476f
Test KERBEROS5=yes builds on OpenBSD.
daztucker Feb 8, 2026
98fdb05
Remove generic check for getpagesize.
daztucker Feb 8, 2026
b62198a
Sync header order with upstream.
daztucker Feb 8, 2026
a3742cc
Sync whitespace with upstream.
daztucker Feb 8, 2026
43d0bf0
Sync header order with upstream and KNF.
daztucker Feb 8, 2026
6243936
Remove openindiana VM test.
daztucker Feb 8, 2026
9385d72
upstream: Reorder headers as per KNF.
daztucker Feb 8, 2026
c73b8b0
upstream: Include sys/socket.h to match -portable,
daztucker Feb 8, 2026
47828db
upstream: Reorder headers according to KNF,
daztucker Feb 8, 2026
eeb671f
Shim <sys/queue.h> and <sys/tree.h>.
daztucker Feb 9, 2026
3e9c4ed
Provide compat shims for sys/{mount.h,statvfs.h).
daztucker Feb 9, 2026
4922635
Factor out COMPATINCLUDES into its own variable.
daztucker Feb 9, 2026
957cb0f
Minor resync with upstream
daztucker Feb 9, 2026
8a5d591
Don't create sys/mount.h shim except on DragonFly.
daztucker Feb 11, 2026
bb27033
upstream: Remove now-unused openssl includes since sshd.c no longer
daztucker Feb 9, 2026
280cf58
upstream: Remove now-unused SKEYQUERY enums from monitor_reqtype.
daztucker Feb 9, 2026
c3eaa95
upstream: Remove unused OpenSSL includes,
daztucker Feb 9, 2026
8ec21f6
upstream: Use https for URLs.
daztucker Feb 9, 2026
db77967
upstream: Remove unused OpenSSL includes,
daztucker Feb 9, 2026
c897279
upstream: Remove references to skey auth which is long gone.
daztucker Feb 9, 2026
4ef2449
upstream: De-underscore __inline__ to match -portable
daztucker Feb 9, 2026
f1b9e0f
upstream: Pass actual size of the buffer to hostname() instead of a
daztucker Feb 11, 2026
8174618
Remove do_pam_chauthtok since it's no longer used.
daztucker Feb 11, 2026
1a4eb51
Factor out RNG reseeding in to a single function.
daztucker Feb 11, 2026
c169300
upstream: Reorder includes and defines to match both KNF and
daztucker Feb 11, 2026
6a756f3
upstream: Remove unused sys/queue.h include.
daztucker Feb 11, 2026
3160f2a
upstream: Add includes used in Portable to reduce diffs.
daztucker Feb 11, 2026
135a622
upstream: support multiple files in a sshd_config RevokedKeys
djmdjm Feb 11, 2026
2f51e29
upstream: support multiple files in a ssh_config RevokedHostKeys
djmdjm Feb 11, 2026
ae51e05
upstream: very basic testing of multiple files in RevokedKeys and
djmdjm Feb 11, 2026
db47519
upstream: remove unneeded forward struct declaration ok djm@
jonathangray Feb 13, 2026
8b3a055
upstream: Replace <sys/mount.h> with <limits.h>
daztucker Feb 13, 2026
c244769
Remove DragonFlyBSD workaround for sys/mount.h.
daztucker Feb 13, 2026
9b0e50b
auth-pam: Add debugging information when we receive PAM messages
3v1n0 Oct 17, 2023
3e8a45e
auth-pam: Add an enum to define the PAM done status
3v1n0 Oct 16, 2023
d8b806a
Remove obsolete comment referencing auth-chall.c.
daztucker Feb 15, 2026
07c6413
upstream: remove unneeded includes; ok dtucker@
jonathangray Feb 14, 2026
c5cee49
upstream: Add basic test for keyboard-interactive auth.
daztucker Feb 15, 2026
7a59f55
upstream: Reorder headers to match KNF and Portable.
daztucker Feb 16, 2026
a1158bb
fix duplicate PAM msgs, missing loginmsg reset
Oct 14, 2024
b9a6dd4
auth-pam: Immediately report interactive instructions to clients
3v1n0 Oct 17, 2023
df2b281
Remove "draining" of PAM prompts.
daztucker Feb 15, 2026
723b76c
Removed duplicate includes; spotted by jsg@.
daztucker Feb 16, 2026
9eb778c
Restore utf8.h removed earlier as it's needed.
daztucker Feb 16, 2026
0e35095
upstream: remove duplicate includes; ok dtucker@
jonathangray Feb 16, 2026
2b0f4a7
upstream: make IPQoS first-match-wins in sshd_config as it's
djmdjm Feb 17, 2026
c363156
upstream: when uploading a directory using sftp/sftp (e.g. during a
djmdjm Feb 18, 2026
84206bd
upstream: same treatment for remote/remote copies (i.e. scp -3):
djmdjm Feb 18, 2026
b046330
Add test coverage for all of the --audit= configs.
daztucker Feb 18, 2026
e5e1843
Whitespace fix.
daztucker Feb 18, 2026
97e8e66
Increase riscv64 test coverage.
daztucker Feb 18, 2026
f1a9628
Move BSM audit test to selfhosted runner.
daztucker Feb 18, 2026
c9fcea8
Enable BSM audit test on FreeBSD VMs.
daztucker Feb 18, 2026
5f98660
Install libaudit-dev for --with-audit=linux test.
daztucker Feb 18, 2026
a07a53b
Activate kbdint test on PAM configs.
daztucker Feb 23, 2026
4ed5f9e
upstream: Remove leftover debugging.
daztucker Feb 24, 2026
c940e70
Check regress passwd is set before enabling kbdint.
daztucker Feb 24, 2026
d7a9cd6
Remove potentially leftover include compat shims.
daztucker Feb 24, 2026
5da0cce
Remove anchor to specific release notes version.
daztucker Feb 24, 2026
c25254d
Add self-hosted status to main README now it's public.
daztucker Feb 24, 2026
acf7497
Add AWS-LC and BoringSSL as potential libcryptos.
daztucker Feb 24, 2026
c65f4d2
upstream: Use fmprintf instead of logit for challenge-response name and
daztucker Feb 24, 2026
c26d90e
Remove BoringSSL rpath as it's statically linked.
daztucker Feb 28, 2026
b50b881
Try -lstdc++ for libcrypto before giving up.
daztucker Feb 28, 2026
bb781f0
upstream: Move banner exchange to sshd-auth process
djmdjm Mar 2, 2026
2a387ba
upstream: Replace all remaining instances of u_intXX_t types with the
daztucker Mar 3, 2026
511f5bc
upstream: correctness wrt draft-ietf-sshm-ssh-agent:
djmdjm Mar 5, 2026
4fe2786
upstream: With IANA codepoints for draft-ietf-sshm-ssh-agent now
djmdjm Mar 5, 2026
e067ccd
upstream: ssh-agent supports a "query" extension that allows a
djmdjm Mar 5, 2026
2df416d
upstream: Replace u_intXX_t types with the equivalent C99 uintXX_t
daztucker Mar 6, 2026
4e15f7f
upstream: Move OpenBSD CVS ID marker to top of file to avoid conflicts
daztucker Mar 6, 2026
73888af
stubs for OpenBSD unveil(2)
djmdjm Mar 10, 2026
b75bf33
upstream: Stop doing access() before execve(). It is a TOCTOU, but
Mar 7, 2026
46eb7dc
upstream: With it's own daemonization / fd cleaning code, ssh-agent
Mar 7, 2026
2a9e1aa
upstream: unveil ssh-pkcs11-helper too; fixes breakage spotted by
djmdjm Mar 10, 2026
beba588
upstream: When execve() failure is indicated on the pipe, replicate
Mar 10, 2026
ef98b60
upstream: when unveils error our, use correct variable
Mar 10, 2026
70a4126
upstream: whitespace
djmdjm Mar 10, 2026
2416827
upstream: Fix potential 1-byte array overrun
daztucker Mar 11, 2026
552a5c7
upstream: Check return values of fcntl(... O_CLOEXEC)
daztucker Mar 11, 2026
443616c
upstream: repair ssh-keysign after pledge changes; spotted/tested
djmdjm Mar 19, 2026
2ca6eef
upstream: clarify that Authorized(Keys|Principals)(File|Command)
djmdjm Mar 23, 2026
12da685
Upstream tests don't use the config file.
daztucker Mar 19, 2026
4bb4f16
Add a Valgrind test of the PAM config.
daztucker Mar 23, 2026
d3efbba
Add a VM-based test for OpenBSD-current.
daztucker Mar 19, 2026
c5182e3
upstream: fix potential hang if /etc/moduli doesn't contain the
djmdjm Mar 28, 2026
21ecb5f
upstream: mention that RevokedKeys is read by the server at each
djmdjm Mar 28, 2026
8331cb9
upstream: fix base16 parsing; currently unused. From Renaud Allard
djmdjm Mar 28, 2026
fd5018f
upstream: ensure c->local_window doesn't underflow during updates;
djmdjm Mar 28, 2026
fd7d4b2
seccomp sandbox: allow riscv_hwprobe syscall if present
Icenowy Mar 22, 2026
6eb5a68
openbsd-compat: reword EAI_NONAME error string
LaurentChardon Mar 28, 2026
bdaf65a
fix state confusion between PAM and privsep code
djmdjm Mar 29, 2026
c90f46b
use nonnull attribute when available
djmdjm Mar 29, 2026
54443b8
depend
djmdjm Mar 29, 2026
b62a6cf
upstream: switch from int to long long for bandwidth calculations;
djmdjm Mar 29, 2026
0a0ef45
upstream: apply the same validity rules to usernames and hostnames
djmdjm Mar 30, 2026
5576e26
upstream: Add special handling of
daztucker Mar 23, 2026
2ecfcc0
upstream: Check if host keys exist before adding them, and expand
daztucker Mar 23, 2026
445db5c
upstream: Ensure known_hosts file exists when setting up.
daztucker Mar 24, 2026
55fc7bf
upstream: Use ~/.shosts for Hostbased test.
daztucker Mar 24, 2026
607bd87
upstream: add a regression test for ProxyJump/-J; ok dtucker
djmdjm Mar 30, 2026
1340d3f
Add proxyjump.sh omitted from previous commit.
daztucker Mar 30, 2026
52c01f2
add missing <stdio.h> include to unit tests for printf
michaelforney Mar 31, 2026
fe86c39
avoid k suffix in dd count operand in sftp-resume test
michaelforney Apr 1, 2026
5d72f18
properly bail out when PAM changes username
djmdjm Apr 2, 2026
78d5498
upstream: Fix possible sshd crash when sshd_config set MaxStartups
djmdjm Apr 2, 2026
c805b97
upstream: add missing askpass check when using
djmdjm Apr 2, 2026
487e8ac
upstream: when downloading files as root in legacy (-O) mode and
djmdjm Apr 2, 2026
fd1c7e1
upstream: correctly match ECDSA signature algorithms against
djmdjm Apr 2, 2026
76685c9
upstream: move username validity check for usernames specified on
djmdjm Apr 2, 2026
eb3a5bb
upstream: openssh-10.3
djmdjm Apr 2, 2026
5aa0992
upstream: adapt to username validity check change
djmdjm Apr 2, 2026
f8b9d69
Update versions in RPM spec files
djmdjm Apr 2, 2026
4168c90
depend
djmdjm Apr 2, 2026
500b203
update release notes URL
djmdjm Apr 2, 2026
2d98db9
autogenerated files for release
djmdjm Apr 2, 2026
7c952d6
Merge upstream OpenSSH V_10_3_P1
tgauth Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
345 changes: 172 additions & 173 deletions .depend

Large diffs are not rendered by default.

29 changes: 20 additions & 9 deletions .github/configs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ case "$config" in
CONFIGFLAGS="--with-xauth=/usr/bin/xauth --with-security-key-builtin"
CONFIGFLAGS="$CONFIGFLAGS --with-kerberos5=/usr --with-libedit --disable-strip"
;;
clang-12-Werror)
clang-12-Werror)
CC="clang-12"
# clang's implicit-fallthrough requires that the code be annotated with
# __attribute__((fallthrough)) and does not understand /* FALLTHROUGH */
Expand Down Expand Up @@ -130,7 +130,9 @@ case "$config" in
CONFIGFLAGS="--with-kerberos5 --with-libedit --with-pam"
CONFIGFLAGS="${CONFIGFLAGS} --with-security-key-builtin --with-selinux"
CONFIGFLAGS="${CONFIGFLAGS} --with-linux-memlock-onfault"
CONFIGFLAGS="${CONFIGFLAGS} --with-audit=debug"
CFLAGS="-DSK_DEBUG -DSANDBOX_SECCOMP_FILTER_DEBUG"
EXTRA_TESTS="gss-auth"
;;
hardenedmalloc)
CONFIGFLAGS="--with-ldflags=-lhardened_malloc"
Expand All @@ -147,6 +149,7 @@ case "$config" in
;;
krb5|heimdal)
CONFIGFLAGS="--with-kerberos5"
EXTRA_TESTS="gss-auth"
;;
libedit)
CONFIGFLAGS="--with-libedit"
Expand All @@ -160,14 +163,15 @@ case "$config" in
pam-krb5)
CONFIGFLAGS="--with-pam --with-kerberos5"
SSHD_CONFOPTS="UsePam yes"
EXTRA_TESTS="gss-auth"
;;
*pam)
CONFIGFLAGS="--with-pam"
SSHD_CONFOPTS="UsePam yes"
;;
boringssl)
CONFIGFLAGS="--disable-pkcs11"
LIBCRYPTOFLAGS="--with-ssl-dir=/opt/boringssl --with-rpath=-Wl,-rpath,"
LIBCRYPTOFLAGS="--with-ssl-dir=/opt/boringssl"
;;
aws-lc)
LIBCRYPTOFLAGS="--with-ssl-dir=/opt/aws-lc --with-rpath=-Wl,-rpath,"
Expand All @@ -189,7 +193,7 @@ case "$config" in
fi
;;
selinux)
CONFIGFLAGS="--with-selinux"
CONFIGFLAGS="--with-selinux --with-audit=linux"
;;
sk)
CONFIGFLAGS="--with-security-key-builtin --with-security-key-standalone"
Expand All @@ -198,10 +202,14 @@ case "$config" in
LIBCRYPTOFLAGS="--without-openssl"
TEST_TARGET=t-exec
;;
valgrind-[1-4]|valgrind-unit)
valgrind-[1-4]|valgrind-unit|valgrind-pam-1)
# rlimit sandbox and FORTIFY_SOURCE confuse Valgrind.
CONFIGFLAGS="--without-sandbox --without-hardening"
CONFIGFLAGS="$CONFIGFLAGS --with-cppflags=-D_FORTIFY_SOURCE=0"
if [ "${config}" = "valgrind-pam-1" ]; then
CONFIGFLAGS="$CONFIGFLAGS --with-pam"
SSHD_CONFOPTS="UsePam yes"
fi
TEST_TARGET="t-exec USE_VALGRIND=1"
TEST_SSH_ELAPSED_TIMES=1
export TEST_SSH_ELAPSED_TIMES
Expand All @@ -212,7 +220,7 @@ case "$config" in
tests3="krl forward-control sshsig agent-restrict kextype sftp"
tests4="cert-userkey cert-hostkey kextype sftp-perm keygen-comment percent"
case "$config" in
valgrind-1)
valgrind-1|valgrind-pam)
# All tests except agent-timeout (which is flaky under valgrind),
# connection-timeout (which doesn't work since it's so slow)
# and hostbased (since valgrind won't let ssh exec keysign).
Expand Down Expand Up @@ -265,10 +273,6 @@ case "${TARGET_HOST}" in
TEST_TARGET="t-exec unit TEST_SHELL=bash"
SKIP_LTESTS="rekey sftp"
;;
debian-riscv64)
# This machine is fairly slow, so skip the unit tests.
TEST_TARGET="t-exec"
;;
dfly58*|dfly60*)
# scp 3-way connection hangs on these so skip until sorted.
SKIP_LTESTS=scp3
Expand Down Expand Up @@ -361,6 +365,13 @@ case "$host" in
SKIP_LTESTS="agent-getpeereid" ;;
esac
;;
*-solaris2.10)
# Only the sol10 VM has BSM libraries installed, so add that to
# the PAM test config.
if [ "${config}" = "pam" ]; then
CONFIGFLAGS="${CONFIGFLAGS} --with-audit=bsm"
fi
;;
esac

# Unless specifically configured, search for a suitable version of OpenSSL,
Expand Down
5 changes: 5 additions & 0 deletions .github/run_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ else
${env} make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}"
fi

# Activate kbdint regression test for PAM
if echo "${SSHD_CONFOPTS}" | grep -i usepam >/dev/null && [ -f regress/password ]; then
cp regress/password regress/kbdintpw
fi

if [ ! -z "${SSHD_CONFOPTS}" ]; then
echo "rerunning t-exec with TEST_SSH_SSHD_CONFOPTS='${SSHD_CONFOPTS}'"
if [ -z "${LTESTS}" ]; then
Expand Down
127 changes: 113 additions & 14 deletions .github/workflows/vm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ jobs:
strategy:
fail-fast: false
matrix:
# First we test all OSes in the default configuration.
target:
- "6.4.2"
config: [default]
Expand Down Expand Up @@ -84,7 +83,6 @@ jobs:
strategy:
fail-fast: false
matrix:
# First we test all OSes in the default configuration.
target:
- "13.5"
- "14.3"
Expand Down Expand Up @@ -128,7 +126,7 @@ jobs:

- name: "PAM: configure"
shell: freebsd {0}
run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam
run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam --with-audit=bsm
- name: "PAM: make clean"
shell: freebsd {0}
run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
Expand All @@ -148,7 +146,6 @@ jobs:
strategy:
fail-fast: false
matrix:
# First we test all OSes in the default configuration.
target:
- "9.0"
- "9.4"
Expand Down Expand Up @@ -207,15 +204,15 @@ jobs:
sudo -u builder env SUDO=sudo SSHD_CONFOPTS="UsePam yes" make tests


ominios:
omnios:
name: "omnios-${{ matrix.target }}"
if: github.repository != 'openssh/openssh-portable-selfhosted'
strategy:
fail-fast: false
matrix:
# First we test all OSes in the default configuration.
target:
- "r151054"
- "r151046"
config: [default]
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -264,12 +261,12 @@ jobs:
strategy:
fail-fast: false
matrix:
# First we test all OSes in the default configuration.
target:
- "7.3"
- "7.5"
- "7.6"
- "7.7"
- "7.8"
config: [default]
runs-on: ubuntu-latest
steps:
Expand All @@ -283,9 +280,12 @@ jobs:
release: ${{ matrix.target }}
usesh: true
prepare: |
env PKG_PATH=https://ftp.openbsd.org/pub/OpenBSD/${{matrix.target}}/packages/amd64 pkg_add sudo--
useradd -m builder
echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/etc/sudoers
echo "permit nopass keepenv root" >/etc/doas.conf
echo "permit nopass keepenv builder" >>/etc/doas.conf
ls -l /etc/doas.conf
chown root:wheel /etc/doas.conf
chmod 644 /etc/doas.conf
mkdir -p /var/empty /usr/local/etc
cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli

Expand All @@ -294,18 +294,117 @@ jobs:
run: cd $GITHUB_WORKSPACE && chown -R builder .
- name: configure
shell: openbsd {0}
run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
run: cd $GITHUB_WORKSPACE && doas -u builder ./configure
- name: make clean
shell: openbsd {0}
run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
run: cd $GITHUB_WORKSPACE && doas -u builder make clean
- name: make
shell: openbsd {0}
run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
run: cd $GITHUB_WORKSPACE && doas -u builder make -j4
- name: make tests
shell: openbsd {0}
run: |
cd $GITHUB_WORKSPACE
sudo -u builder env SUDO=sudo make tests
doas -u builder env SUDO=doas make tests


openbsd-current-upstream:
# This job is special, and tests OpenBSD -current, both the underlying
# plaform (the latest snapshot) and most recent upstream code (or at least
# the most recent code in the github mirror) instead of OpenSSH Portable.
name: "openbsd-current-upstream"
if: github.repository != 'openssh/openssh-portable-selfhosted'
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- name: start OpenBSD VM
uses: vmactions/openbsd-vm@v1
with:
copyback: false
nat: |
"20022": "22"
usesh: true
prepare: |
useradd -g wobj -m builder
echo "permit nopass keepenv root" >/etc/doas.conf
echo "permit nopass keepenv builder" >>/etc/doas.conf
ls -l /etc/doas.conf
chown root:wheel /etc/doas.conf
chmod 644 /etc/doas.conf
touch /etc/ssh/ssh_known_hosts
pkg_add git

- name: Fetch sysupgrade version
run: |
ver=$(curl -s https://cdn.openbsd.org/pub/OpenBSD/snapshots/amd64/BUILDINFO)
echo "SNAPSHOT_VERSION=${ver}" >> $GITHUB_ENV
- name: check for cached sysupgrade
id: cache-sysupgrade
uses: actions/cache@v4
with:
key: openbsd-sysupgrade ${{ env.SNAPSHOT_VERSION }}
path: /tmp/_sysupgrade/
- name: push sysupgrade from cache to VM
if: steps.cache-sysupgrade.outputs.cache-hit == 'true'
run: rsync -av /tmp/_sysupgrade/ openbsd:/home/_sysupgrade/
- name: upgrade to latest snapshot
run: ssh -q openbsd sysupgrade -s -k || true
- name: wait for upgrade
run: |
SECONDS=0; sleep 10; while ! ssh -q -oConnectTimeout=1 openbsd true; do sleep 10; echo waited ${SECONDS}s; done
ssh -q openbsd uname -a
- name: retrieve sysupgrade from VM to cache
if: steps.cache-sysupgrade.outputs.cache-hit != 'true'
run: |
mkdir -p /tmp/_sysupgrade/
rsync -av openbsd:/home/_sysupgrade/ /tmp/_sysupgrade/
- name: save sysupgrade to cache
if: steps.cache-sysupgrade.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
key: openbsd-sysupgrade ${{ env.SNAPSHOT_VERSION }}
path: /tmp/_sysupgrade/

- name: checkout upstream source
shell: openbsd {0}
run: |
umask 022
cd /usr
rm -rf src/*
git clone --no-checkout --depth=1 --filter=tree:0 https://github.com/openbsd/src.git
cd /usr/src
git sparse-checkout set --no-cone Makefile usr.bin/Makefile usr.bin/Makefile.inc usr.bin/ssh usr.bin/nc regress/usr.bin/ssh
git checkout
git log -n1
chown -R builder /usr/src
chmod -R go-w /usr/src/ /usr/obj/
- name: make ssh
shell: openbsd {0}
run: |
cd /usr/src/usr.bin/ssh && make -j4 || make
make install
/etc/rc.d/sshd restart
- name: make nc
shell: openbsd {0}
run: cd /usr/src/usr.bin/nc && make && make install
- name: make tests
shell: openbsd {0}
run: |
cd /usr/src/regress/usr.bin/ssh
make obj
doas -u builder env SUDO=doas TEST_SSH_UNSAFE_PERMISSIONS=yes TEST_SSH_FAIL_FATAL=yes TEST_SSH_HOSTBASED_AUTH=setupandrun make
- name: retrieve logs
if: failure()
run: |
rsync -a openbsd:/usr/obj/regress/usr.bin/ssh/ regress-logs/
for i in regress-logs/failed*.log; do echo ===; echo LOGFILE: $i; echo ===; cat $i; echo; done
- name: save logs
if: failure()
uses: actions/upload-artifact@main
with:
name: openbsd-current-upstream-logs
path: regress-logs/*.log


solaris:
Expand All @@ -314,7 +413,6 @@ jobs:
strategy:
fail-fast: false
matrix:
# First we test all OSes in the default configuration.
target:
- "11.4-gcc"
config: [default]
Expand Down Expand Up @@ -370,3 +468,4 @@ jobs:
run: |
cd $GITHUB_WORKSPACE
sudo -u builder make tests

1 change: 1 addition & 0 deletions .skipped-commit-ids
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ ef7ecdb6dd2542f42fa7236d17ac0b144851f0b5 ssh-keygen, fixup'ed into 21682417
da414a364c25b187fc686da7aacec2c35d29238a ssh-keygen, fixup'ed into 21682417
a05e13a7e2c0b65bb4b47184fef731243431c6ff Makefile.inc
7e8178786157e863f6ff63c5d55200d7b6b04f9e remove old sandbox files
98eefed432ff8253b307002e20d28da14b93e7e3 Makefile.inc

Old upstream tree:

Expand Down
Loading
Loading