1
0
Fork 0
mirror of https://github.com/openssh/openssh-portable.git synced 2026-09-20 01:41:06 +00:00
Portable OpenSSH
  • C 70.5%
  • C++ 12.9%
  • Shell 7.5%
  • Roff 5.1%
  • M4 2.5%
  • Other 1.5%
Find a file
Damien Miller 7fe3b24c92
set -Wno-error=discarded-qualifiers
Disable this as a compilation error for -Werror builds until we
clean them all up.
2026-09-04 00:16:30 +10:00
.github Skip scp3 test on macosx 26 until debugged. 2026-08-20 21:34:33 +10:00
contrib Update x11-ssh-askpass upstream location. 2026-08-12 19:58:33 +10:00
m4 wrap some autoconf macros in AC_CACHE_CHECK 2025-07-02 13:47:38 +10:00
openbsd-compat Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
regress upstream: add regress test for servers that hang durig banner write; 2026-08-11 09:30:12 +10:00
.depend depend 2026-08-11 12:21:59 +10:00
.git_allowed_signers Add new hardware-backed signing key for myself. 2024-12-06 23:54:45 +11:00
.git_allowed_signers.asc regen signature on allowed_signers file 2026-04-15 08:14:58 +10:00
.gitignore gitignore: ignore all *~ files 2025-10-14 18:37:40 +11:00
.skipped-commit-ids upstream: Use the new RELINK feature in bsd.prog.mk to build the 2026-05-30 23:29:55 +10:00
addr.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
addr.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
addrmatch.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
atomicio.c Create replacement poll.h if needed. 2025-09-05 17:17:52 +10:00
atomicio.h upstream: move client/server SSH-* banners to buffers under 2018-12-27 14:38:22 +11:00
audit-bsm.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
audit-linux.c Don't log audit messages with UNKNOWN hostname 2025-09-30 09:51:51 +10:00
audit.c last bits of old packet API / active_state global 2019-01-20 14:55:27 +11:00
audit.h last bits of old packet API / active_state global 2019-01-20 14:55:27 +11:00
auth-bsdauth.c upstream: remove vestige of when we supported running without privsep 2026-02-06 12:26:23 +11:00
auth-krb5.c upstream: Reorder headers according to KNF, 2026-02-09 09:47:11 +11:00
auth-options.c Shim <sys/queue.h> and <sys/tree.h>. 2026-02-10 13:17:13 +11:00
auth-options.h upstream: make authorized_keys environment="..." directives 2021-07-23 14:07:19 +10:00
auth-pam.c properly bail out when PAM changes username 2026-04-02 18:32:00 +11:00
auth-pam.h fix state confusion between PAM and privsep code 2026-03-29 16:24:59 +11:00
auth-passwd.c upstream: convert a last quad_t to int64_t. ok deraadt djm 2025-05-20 18:03:11 +10:00
auth-rhosts.c Create replacement netgroup.h if needed. 2025-09-05 19:13:52 +10:00
auth-shadow.c replace remaining manual logging of __func__ 2025-09-02 19:30:07 +10:00
auth-sia.c Remove key.h from portable files too. 2018-07-12 14:57:46 +10:00
auth-sia.h - (dtucker) [auth-passwd.c auth-sia.h] Remove duplicate definitions of 2005-04-05 21:00:47 +10:00
auth.c upstream: fix ChannelTimeout and RekeyLimit not being applied in 2026-07-21 16:20:16 +10:00
auth.h upstream: Fix cases in GSSAPI and keyboard-interactive 2026-07-06 17:55:31 +10:00
auth2-chall.c upstream: Fix cases in GSSAPI and keyboard-interactive 2026-07-06 17:55:31 +10:00
auth2-gss.c upstream: unused variables 2026-07-07 12:18:56 +10:00
auth2-hostbased.c upstream: Move check of public key type against allowed algorithms 2026-07-30 13:49:43 +10:00
auth2-kbdint.c upstream: Start the process of splitting sshd into separate 2024-05-17 14:41:35 +10:00
auth2-methods.c upstream: typos 2024-05-31 19:04:11 +10:00
auth2-none.c Resync headers with upstream. 2026-02-08 04:40:08 +11:00
auth2-passwd.c upstream: Start the process of splitting sshd into separate 2024-05-17 14:41:35 +10:00
auth2-pubkey.c upstream: Move check of public key type against allowed algorithms 2026-07-30 13:49:43 +10:00
auth2-pubkeyfile.c upstream: correctly match ECDSA signature algorithms against 2026-04-02 18:53:25 +11:00
auth2.c upstream: Fix cases in GSSAPI and keyboard-interactive 2026-07-06 17:55:31 +10:00
authfd.c upstream: s/calloc/xcalloc/ to reduce noise from AI bug detectors 2026-06-29 19:16:34 +10:00
authfd.h upstream: ssh-agent supports a "query" extension that allows a 2026-03-05 16:45:28 +11:00
authfile.c upstream: prefer fstat to stat when it's trivial to do so 2026-07-21 15:22:55 +10:00
authfile.h upstream: factor out reading/writing sshbufs to dedicated 2020-01-26 10:18:42 +11:00
bitmap.c upstream commit 2017-10-20 12:58:35 +11:00
bitmap.h upstream commit 2017-10-20 12:58:35 +11:00
buildpkg.sh.in fix old typo (s/SYSVINITSTOPT/SYSVINITSTOP/) 2024-12-16 15:36:54 -08:00
canohost.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
canohost.h upstream commit 2016-03-08 06:20:35 +11:00
chacha.c upstream: chacha: avoid -Wunterminated-string-initialization 2026-05-21 14:06:34 +10:00
chacha.h upstream: whitespace (tab after space) 2021-04-03 17:20:00 +11:00
channels.c upstream: Avoid printf("%s", NULL) since it's not guaranteed to be safe 2026-06-24 22:00:35 +10:00
channels.h upstream: add a missing channels type for bulk/interactive 2026-06-24 17:24:37 +10:00
cipher-aes.c remove support for old libcrypto 2023-03-24 13:56:25 +11:00
cipher-aesctr.c upstream: De-underscore __inline__ to match -portable 2026-02-11 12:40:06 -05:00
cipher-aesctr.h - markus@cvs.openbsd.org 2014/04/29 18:01:49 2014-05-15 14:24:09 +10:00
cipher-chachapoly-libcrypto.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
cipher-chachapoly.c upstream: move other RCSIDs to before their respective license blocks 2023-07-17 15:33:51 +10:00
cipher-chachapoly.h upstream: make Chacha20-POLY1305 context struct opaque; ok tb@ as 2020-04-03 15:36:57 +11:00
cipher.c upstream: remove cipher_set_keyiv() as nothing uses it from 2026-06-23 14:32:02 +10:00
cipher.h upstream: remove cipher_set_keyiv() as nothing uses it from 2026-06-23 14:32:02 +10:00
cleanup.c - (djm) [auth-pam.c auth-shadow.c auth2-none.c cleanup.c sshd.c] 2006-08-05 14:07:20 +10:00
clientloop.c upstream: whitespace 2026-07-01 11:09:17 +10:00
clientloop.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
compat.c upstream: Move banner exchange to sshd-auth process 2026-03-02 13:43:29 +11:00
compat.h upstream: Refactor creation of KEX proposal. 2023-03-06 23:31:52 +11:00
config.guess Update autotools 2022-12-06 12:23:08 +11:00
config.sub Update autotools 2022-12-06 12:23:08 +11:00
configure.ac set -Wno-error=discarded-qualifiers 2026-09-04 00:16:30 +10:00
CREDITS convert to UTF-8; from Mike Frysinger 2019-07-29 09:49:23 +10:00
crypto_api.h upstream: move to a better place 2026-07-21 15:23:24 +10:00
defines.h don't build ML-KEM/ML-DSA code with <C99 compilers 2026-06-14 20:32:12 +10:00
dh.c upstream: Reorder headers according to KNF, 2026-02-09 09:47:11 +11:00
dh.h upstream: Add ModuliFile keyword to sshd_config to specify the 2021-03-13 13:14:13 +11:00
digest-libc.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
digest-openssl.c upstream: whitespace; no code change 2020-10-29 13:54:13 +11:00
digest.h upstream commit 2017-05-10 11:41:21 +10:00
dispatch.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
dispatch.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
dns.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
dns.h upstream: remove experimental support for XMSS keys; 2025-08-29 13:58:40 +10:00
ed25519-openssl.c upstream: Fix bounds checking when signing messages of length 2026-06-29 12:19:49 +10:00
ed25519.c upstream: make crypto_sign_ed25519_keypair_from_seed non-static. 2026-06-14 14:27:52 +10:00
ed25519.sh upstream: make crypto_sign_ed25519_keypair_from_seed non-static. 2026-06-14 14:27:52 +10:00
entropy.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
entropy.h Factor out RNG reseeding in to a single function. 2026-02-11 17:36:42 -05:00
fatal.c upstream: fix SEGV on fatal() errors spotted by dtucker@ 2020-10-19 19:09:08 +11:00
fixalgorithms Correct filename in comment. 2026-08-03 22:06:26 +10:00
fixpaths - (djm) PERL-free fixpaths from stuge-openssh-unix-dev@cdy.org 2002-12-05 20:59:33 +11:00
groupaccess.c let ga_init() fail gracefully if getgrouplist does 2025-07-11 17:20:27 -07:00
groupaccess.h - djm@cvs.openbsd.org 2008/07/04 03:44:59 2008-07-04 13:51:12 +10:00
gss-genr.c upstream: Reorder headers according to KNF, 2026-02-09 09:47:11 +11:00
gss-serv-krb5.c upstream: Make ssh optionally build with Kerberos 5 against the 2026-02-09 04:05:31 +11:00
gss-serv.c upstream: Pass actual size of the buffer to hostname() instead of a 2026-02-11 12:40:07 -05:00
hmac.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
hmac.h - djm@cvs.openbsd.org 2014/06/24 01:13:21 2014-07-02 15:28:02 +10:00
hostfile.c upstream: avoid leak of fingerprint on error path; from Lidong Yan via 2025-11-25 11:57:36 +11:00
hostfile.h upstream: make struct hostkeys public; I have no idea why I made it 2021-01-26 12:21:48 +11:00
includes.h Add fcntl.h to includes. 2025-10-07 20:25:07 +11:00
INSTALL Update x11-ssh-askpass upstream location. 2026-08-12 19:58:33 +10:00
install-sh Update autotools 2022-12-06 12:23:08 +11:00
kex-names.c upstream: remove mlkem768brainpoolp256r1-sha256; requested by 2026-08-08 17:35:08 +10:00
kex.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
kex.h upstream: remove mlkem768brainpoolp256r1-sha256; requested by 2026-08-08 17:35:08 +10:00
kexc25519.c upstream: Add experimental support for hybrid post-quantum key exchange 2024-09-02 22:32:44 +10:00
kexdh.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
kexecdh.c upstream: fix ML-KEM/ECDH interop problem (does not affect 2026-08-03 16:44:04 +10:00
kexgen.c upstream: Make mlkem768ecdh build with OPENSSL=no. ok djm@ 2026-07-30 17:39:53 +10:00
kexgex.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
kexgexc.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
kexgexs.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
kexmlkem768ecdh.c upstream: fix ML-KEM/ECDH interop problem (does not affect 2026-08-03 16:44:04 +10:00
kexmlkem768x25519.c bring back mlkem768x25519-sha256 stubs 2026-06-15 11:44:49 +10:00
kexsntrup761x25519.c upstream: update the Streamlined NTRU Prime code from the "ref" 2024-09-15 12:24:48 +10:00
krl.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
krl.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
libcrux-mlkem-mldsa.c don't build ML-KEM/ML-DSA code with <C99 compilers 2026-06-14 20:32:12 +10:00
libcrux_internal.h upstream: Add experimental support for a composite post-quantum 2026-06-14 14:27:52 +10:00
LICENCE include openbsd-compat/base64.c license in LICENSE 2024-09-18 16:03:23 +10:00
log.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
log.h upstream: add infrastructure for ratelimited logging; feedback/ok 2024-12-07 21:22:56 +11:00
loginrec.c Fix ut_type for btmp records 2026-02-08 02:55:47 +11:00
loginrec.h Fix ut_type for btmp records 2026-02-08 02:55:47 +11:00
logintest.c Create replacement time.h if needed. 2025-09-05 17:55:33 +10:00
mac.c upstream: avoid validating bad cipher or mac lists in config files 2026-05-21 14:06:01 +10:00
mac.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
Makefile.in upstream: ssh: implement mlkem768nistp256-sha256; ok djm@ 2026-07-30 13:48:52 +10:00
match.c upstream: Replace the old recursive match_pattern() with an 2026-05-31 15:03:54 +10:00
match.h upstream: some language improvements; ok markus 2020-07-15 15:07:42 +10:00
mdoc2man.awk mdoc2man: process Dl macros 2025-10-14 18:40:39 +11:00
misc-agent.c upstream: Add includes used in Portable to reduce diffs. 2026-02-12 10:28:24 +11:00
misc.c upstream: annotate tm_wday = -1 with /* sentinel for error */ per 2026-06-23 14:32:02 +10:00
misc.h upstream: Check return values of fcntl(... O_CLOEXEC) 2026-03-11 21:08:02 +11:00
mkinstalldirs Remove remaining now-obsolete cvs $Ids. 2018-02-15 20:06:19 +11:00
mlkem_mldsa.sh upstream: Add experimental support for a composite post-quantum 2026-06-14 14:27:52 +10:00
moduli upstream: Import updated moduli 2026-06-07 18:53:25 +10:00
moduli.5 Resync moduli.5 with upstream. 2022-04-16 14:33:20 +10:00
moduli.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
monitor.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
monitor.h upstream: Move banner exchange to sshd-auth process 2026-03-02 13:43:29 +11:00
monitor_fdpass.c upstream: Reorder headers according to KNF, 2026-02-09 09:47:11 +11:00
monitor_fdpass.h - djm@cvs.openbsd.org 2007/09/04 03:21:03 2007-09-17 12:04:08 +10:00
monitor_wrap.c upstream: fix ChannelTimeout and RekeyLimit not being applied in 2026-07-21 16:20:16 +10:00
monitor_wrap.h upstream: big refactor of sshd config management code. 2026-05-31 22:23:40 +10:00
msg.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
msg.h upstream commit 2015-01-15 21:39:14 +11:00
mux.c upstream: add missing askpass check when using 2026-04-02 18:53:24 +11:00
myproposal.h upstream: reenable ssh-mldsa44-ed25519 at a low priority position 2026-09-02 19:14:52 +10:00
nchan.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
nchan.ms - djm@cvs.openbsd.org 2003/11/21 11:57:03 2003-11-21 23:48:55 +11:00
nchan2.ms - djm@cvs.openbsd.org 2008/05/15 23:52:24 2008-05-19 16:08:20 +10:00
openssh.xml.in - (tim) [buildpkg.sh.in openssh.xml.in] Allow more flexibility where smf(5) 2007-07-24 21:16:07 -07:00
opensshd.init.in Replace shell function with ssh-keygen -A. 2021-08-20 18:14:13 +10:00
OVERVIEW upstream: refer to OpenSSL not SSLeay; 2018-10-23 16:57:54 +11:00
packet.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
packet.h Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
pathnames.h upstream: Add experimental support for a composite post-quantum 2026-06-14 14:27:52 +10:00
pkcs11.h upstream: update our PKCS#11 API header to v3.0; 2025-07-26 11:54:10 +10:00
platform-listen.c Add support for locking memory on Linux 2025-03-23 11:24:03 +11:00
platform-misc.c Split platform_sys_dir_uid into its own file 2017-08-25 13:25:01 +10:00
platform-pledge.c Support Illumos/Solaris fine-grained privileges 2016-01-08 14:29:12 +11:00
platform-tracing.c Fix comment text. From emaste at freebsd.org. 2022-11-09 08:27:47 +11:00
platform.c Debug log for why an account is considered locked. 2025-05-11 22:54:13 +10:00
platform.h platform: introduce a way to hook new session start 2025-03-23 11:23:33 +11:00
poly1305.c Fill in missing system header files. 2025-09-05 17:06:14 +10:00
poly1305.h - djm@cvs.openbsd.org 2014/05/02 03:27:54 2014-05-15 14:37:03 +10:00
progressmeter.c upstream: switch from int to long long for bandwidth calculations; 2026-03-30 18:50:47 +11:00
progressmeter.h upstream: Have progressmeter force an update at the beginning and 2019-01-25 06:32:14 +11:00
PROTOCOL upstream: Use https for URLs. 2026-02-11 12:38:48 -05:00
PROTOCOL.agent upstream: refer to RFC9987 instead of I-D 2026-06-04 14:40:51 +10:00
PROTOCOL.key upstream: in OpenSSH private key format, correct type for subsequent 2024-03-30 16:57:32 +11:00
PROTOCOL.krl upstream: remove vestigal support for KRL signatures 2023-07-17 14:52:35 +10:00
PROTOCOL.mux upstream: Remove outdated note from PROTOCOL.mux 2024-01-08 16:12:17 +11:00
PROTOCOL.sshsig upstream: Add RCS IDs to the few files that are missing them; from 2020-08-31 14:34:41 +10:00
PROTOCOL.u2f upstream: when writing an attestation blob for a FIDO key, record all 2020-09-09 13:11:34 +10:00
readconf.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
readconf.h upstream: apply the same validity rules to usernames and hostnames 2026-03-30 18:50:47 +11:00
README Remove anchor to specific release notes version. 2026-02-24 11:10:16 -05:00
README.dns Minor documentation update: 2020-02-11 12:51:24 +11:00
README.md Wording. 2026-07-22 08:34:32 +10:00
README.platform Update dependencies for Debian derivatives. 2026-08-17 17:28:31 +10:00
README.privsep grammar fix; from Daniel O'Connor 2026-07-03 14:20:02 +10:00
readpass.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
rijndael.c upstream: Add includes used in Portable to reduce diffs. 2026-02-12 10:28:24 +11:00
rijndael.h upstream: Make prototype for rijndaelEncrypt match function 2021-09-29 11:09:27 +10:00
sandbox-capsicum.c replace remaining manual logging of __func__ 2025-09-02 19:30:07 +10:00
sandbox-darwin.c replace remaining manual logging of __func__ 2025-09-02 19:30:07 +10:00
sandbox-null.c upstream: Split per-connection sshd-session binary 2024-10-14 14:01:37 +11:00
sandbox-rlimit.c upstream: Split per-connection sshd-session binary 2024-10-14 14:01:37 +11:00
sandbox-seccomp-filter.c seccomp sandbox: restrict mremap flags 2026-09-03 14:14:37 +10:00
sandbox-solaris.c upstream: Split per-connection sshd-session binary 2024-10-14 14:01:37 +11:00
scp.1 upstream: typos: a ssh* -> an ssh* 2025-10-06 12:18:28 +11:00
scp.c upstream: resist that return ".." via remote glob during 2026-06-29 12:19:48 +10:00
SECURITY.md basic SECURITY.md (refers people to the website) 2021-11-03 12:08:21 +11:00
servconf.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
servconf.h allow PAMServiceName in Match (regressed in 10.4) 2026-09-01 15:52:38 +10:00
serverloop.c upstream: make authorized_keys "restrict" keyword apply correctly 2026-07-21 15:23:23 +10:00
serverloop.h upstream commit 2017-09-12 17:37:02 +10:00
session.c upstream: pass >9 commandline arguments to the internal-sftp server, 2026-06-05 18:56:24 +10:00
session.h upstream: Add channel_force_close() 2023-01-06 16:21:39 +11:00
sftp-client.c upstream: avoid situation where sftp_download() could get stuck in 2026-06-29 12:19:49 +10:00
sftp-client.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
sftp-common.c upstream: Add includes used in Portable to reduce diffs. 2026-02-12 10:28:24 +11:00
sftp-common.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
sftp-glob.c Move USE_SYSTEM_GLOB into a glob.h compat shim. 2026-02-09 04:05:27 +11:00
sftp-realpath.c upstream: sys/param.h is not needed for any visible reason 2021-09-03 14:20:22 +10:00
sftp-server-main.c Remove seed_rng calls from scp, sftp, sftp-server. 2022-07-27 16:22:30 +10:00
sftp-server.8 upstream: grammar; a -> an 2026-09-02 19:14:52 +10:00
sftp-server.c upstream: Move negative-FD checks to before first use. CID 909998, 2026-07-01 10:59:10 +10:00
sftp-usergroup.c Shim <sys/queue.h> and <sys/tree.h>. 2026-02-10 13:17:13 +11:00
sftp-usergroup.h upstream: use users-groups-by-id@openssh.com sftp-server extension 2022-09-19 20:51:14 +10:00
sftp.1 upstream: sync -o option lists with ssh.1; requested jmc@ 2024-12-07 21:16:00 +11:00
sftp.c upstream: another ruser_name/ruser_group vs attrib_to_stat() ordering 2026-06-30 12:32:48 +10:00
sftp.h - dtucker@cvs.openbsd.org 2008/06/13 00:12:02 2008-06-13 10:22:54 +10:00
sk-api.h Fill in missing system header files. 2025-09-05 17:06:14 +10:00
sk-usbhid.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
smult_curve25519_ref.c - markus@cvs.openbsd.org 2013/11/02 21:59:15 2013-11-04 08:26:52 +11:00
sntrup761.c upstream: Fill entropy in a single operation instead of hundreds. 2026-01-21 10:05:37 +11:00
sntrup761.sh upstream: Fill entropy in a single operation instead of hundreds. 2026-01-21 10:05:37 +11:00
srclimit.c Shim <sys/queue.h> and <sys/tree.h>. 2026-02-10 13:17:13 +11:00
srclimit.h upstream: Add 'invaliduser' penalty to PerSourcePenalties, which is 2025-12-16 20:40:59 +11:00
ssh-add.1 upstream: read ~/.ssh/id_mldsa44_ed25519 private key files by 2026-07-21 15:23:23 +10:00
ssh-add.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
ssh-agent.1 upstream: add a -V flag to print the version, but mostly as a way 2026-05-30 23:27:34 +10:00
ssh-agent.c upstream: Allow session-bind@openssh.com requests when the agent is 2026-08-07 15:25:03 +10:00
ssh-ecdsa-sk.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
ssh-ecdsa.c Require NISTP521 in libcrypto. 2026-08-01 12:29:37 +10:00
ssh-ed25519-sk.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
ssh-ed25519.c upstream: pass back errors from ed25519 key generation, which 2026-07-30 13:49:44 +10:00
ssh-gss.h upstream: remove prototypes with no matching function; ok djm@ 2024-05-22 14:21:13 +10:00
ssh-keygen.1 upstream: add some options to allow setting or clearing the 2026-08-07 15:50:21 +10:00
ssh-keygen.c upstream: Bump size of key comment buffers. Prevents warnings on 2026-09-02 19:14:51 +10:00
ssh-keyscan.1 upstream: mention that ssh-keyscan output is only as trustworthy as 2026-06-29 12:19:47 +10:00
ssh-keyscan.c upstream: IANA has allocated a non-vendor codepoint for 2026-09-02 19:14:52 +10:00
ssh-keysign.8 upstream: document mldsa44-ed25519 host key and public key 2026-07-21 15:23:04 +10:00
ssh-keysign.c upstream: Add experimental support for a composite post-quantum 2026-06-14 14:27:52 +10:00
ssh-mldsa-eddsa.c upstream: IANA has allocated a non-vendor codepoint for 2026-09-02 19:14:52 +10:00
ssh-pkcs11-client.c upstream: Remove unused OpenSSL includes, 2026-02-11 12:39:02 -05:00
ssh-pkcs11-helper.8 upstream: mention that the helpers are used by ssh(1), ssh-agent(1) 2022-04-29 13:26:24 +10:00
ssh-pkcs11-helper.c upstream: Remove unused sys/queue.h include. 2026-02-12 10:00:37 +11:00
ssh-pkcs11.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
ssh-pkcs11.h upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
ssh-rsa.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
ssh-sandbox.h upstream: Split per-connection sshd-session binary 2024-10-14 14:01:37 +11:00
ssh-sk-client.c upstream: Check return values of fcntl(... O_CLOEXEC) 2026-03-11 21:08:02 +11:00
ssh-sk-helper.8 upstream: mention that the helpers are used by ssh(1), ssh-agent(1) 2022-04-29 13:26:24 +10:00
ssh-sk-helper.c whitespace at eol 2026-08-12 09:29:31 +10:00
ssh-sk.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
ssh-sk.h upstream: When downloading resident keys from a FIDO token, pass 2021-10-28 13:56:59 +11:00
ssh.1 upstream: fix up synopsis and tweak wording for -Z 2026-08-07 15:25:03 +10:00
ssh.c upstream: avoid potential realloc use-after-free in the client if a 2026-08-07 15:25:03 +10:00
ssh.h upstream: remove some unused defines; ok djm@ 2024-09-27 10:01:11 +10:00
ssh2.h upstream: Reserve a range of "local extension" message numbers that 2023-10-10 14:58:55 +11:00
ssh_api.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
ssh_api.h Shim <sys/queue.h> and <sys/tree.h>. 2026-02-10 13:17:13 +11:00
ssh_config upstream: finally remove DSA signature support from OpenSSH. 2025-05-07 14:20:14 +10:00
ssh_config.5 upstream: IANA has allocated a non-vendor codepoint for 2026-09-02 19:14:52 +10:00
sshbuf-getput-basic.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
sshbuf-getput-crypto.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
sshbuf-io.c upstream: fix inverted test that broke ssh-add with keys on stdin. From 2026-07-05 10:18:33 +10:00
sshbuf-misc.c upstream: fix base16 parsing; currently unused. From Renaud Allard 2026-03-28 16:19:06 +11:00
sshbuf.c upstream: Add sshbuf_consume_upto_child(), to similify particular 2025-12-30 11:36:51 +11:00
sshbuf.h Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
sshconnect.c upstream: fix ownership and lifetime of several bits of client 2026-07-06 17:55:31 +10:00
sshconnect.h upstream: Add a "ssh -Z user@host" mode that dumps the pubkeys that 2026-08-03 16:53:54 +10:00
sshconnect2.c upstream: move comment to a better place; suggested by markus@ 2026-08-08 17:34:53 +10:00
sshd-auth.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
sshd-debug.sh upstream: spelling; ok djm@ 2024-12-05 01:28:54 +11:00
sshd-session.c upstream: setproctitle(3) to identify sshd-session when its 2026-07-21 15:22:56 +10:00
sshd.8 upstream: IANA has allocated a non-vendor codepoint for 2026-09-02 19:14:52 +10:00
sshd.c upstream: don't print an error message when trying to load a host 2026-06-29 17:37:16 +10:00
sshd_config upstream: document mldsa44-ed25519 host key and public key 2026-07-21 15:23:04 +10:00
sshd_config.5 upstream: IANA has allocated a non-vendor codepoint for 2026-09-02 19:14:52 +10:00
ssherr-libcrypto.c upstream: ssherr-libcrypto: avoid use of deprecated 2026-07-01 09:57:31 +10:00
ssherr-nolibcrypto.c upstream: Fetch the error reason from libcrypto 2026-02-07 11:12:20 +11:00
ssherr.c upstream: Add experimental support for a composite post-quantum 2026-06-14 14:27:52 +10:00
ssherr.h upstream: Add experimental support for a composite post-quantum 2026-06-14 14:27:52 +10:00
sshkey.c Require NISTP521 in libcrypto. 2026-08-01 12:29:37 +10:00
sshkey.h Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
sshlogin.c upstream: remove duplicate includes; ok dtucker@ 2026-02-18 08:46:28 +11:00
sshlogin.h - (djm) [sshlogin.h] Fix prototype merge botch from 2006; bz#2134 2013-08-01 14:34:16 +10:00
sshpty.c Removed duplicate includes; spotted by jsg@. 2026-02-16 18:32:41 -05:00
sshpty.h upstream commit 2016-11-29 16:51:27 +11:00
sshsig.c upstream: When certificate support was added to OpenSSH, 2025-12-22 12:51:24 +11:00
sshsig.h upstream: Add ssh-keygen -Y match-principals operation to perform 2021-11-27 18:22:41 +11:00
sshtty.c - djm@cvs.openbsd.org 2010/01/09 05:04:24 2010-01-09 22:26:23 +11:00
survey.sh.in - (dtucker) [config.sh.in] Collect oslevel -r too. 2005-02-15 21:26:32 +11:00
TODO upstream: finally remove DSA signature support from OpenSSH. 2025-05-07 14:20:14 +10:00
ttymodes.c upstream: remove unneeded includes; ok dtucker@ 2026-02-15 19:49:47 -05:00
ttymodes.h upstream commit 2017-05-01 10:05:04 +10:00
uidswap.c upstream: Add includes used in Portable to reduce diffs. 2026-02-12 10:28:24 +11:00
uidswap.h upstream: Remove support for running ssh(1) setuid and fatal if 2018-07-19 21:41:42 +10:00
umac.c upstream: Replace all remaining instances of u_intXX_t types with the 2026-03-03 21:04:04 +11:00
umac.h upstream: spelling ok dtucker@ 2022-01-01 15:19:48 +11:00
umac128.c upstream commit 2018-02-09 20:00:18 +11:00
utf8.c special treatment for a more Turkic languages 2026-08-20 11:20:34 +10:00
utf8.h upstream: highly polished whitespace, mostly fixing spaces-for-tab 2021-04-03 17:23:02 +11:00
version.h upstream: openssh-10.5 2026-08-11 09:30:02 +10:00
xmalloc.c Fill in missing system header files. 2025-09-05 17:06:14 +10:00
xmalloc.h upstream: highly polished whitespace, mostly fixing spaces-for-tab 2021-04-03 17:23:02 +11:00

Portable OpenSSH

C/C++ CI VM CI C/C++ CI self-hosted CIFuzz Fuzzing Status Coverity Status

OpenSSH is a complete implementation of the SSH protocol (version 2) for secure remote login, command execution and file transfer. It includes a client ssh and server sshd, file transfer utilities scp and sftp as well as tools for key generation (ssh-keygen), run-time key storage (ssh-agent) and a number of supporting programs.

This is a port of OpenBSD's OpenSSH to most Unix-like operating systems, including Linux, OS X and Cygwin. Portable OpenSSH polyfills OpenBSD APIs that are not available elsewhere, adds sshd sandboxing for more operating systems and includes support for OS-native authentication and auditing (e.g. using PAM).

Documentation

The official documentation for OpenSSH are the man pages for each tool:

Stable Releases

Stable release tarballs are available from a number of download mirrors. We recommend the use of a stable release for most users. Please read the release notes for details of recent changes and potential incompatibilities.

Building Portable OpenSSH

Dependencies

Portable OpenSSH is built using autoconf and make. It requires a working C compiler, standard library and headers.

libcrypto from one of LibreSSL, OpenSSL, AWS-LC or BoringSSL may also be used. OpenSSH may be built without any of these, but the resulting binaries will have only a subset of the cryptographic algorithms normally available.

zlib is optional; without it transport compression is not supported.

FIDO security token support needs libfido2 and its dependencies and will be enabled automatically if they are found.

In addition, certain platforms and build-time options may require additional dependencies; see README.platform for details about your platform.

Building a release

Release tarballs and release branches in git include a pre-built copy of the configure script and may be built using:

tar zxvf openssh-X.YpZ.tar.gz
cd openssh
./configure # [options]
make && make tests

See the Build-time Customisation section below for configure options. If you plan on installing OpenSSH to your system, then you will usually want to specify destination paths.

Building from git

If building from the git master branch, you'll need autoconf installed to build the configure script. The following commands will check out and build portable OpenSSH from git:

git clone https://github.com/openssh/openssh-portable # or https://anongit.mindrot.org/openssh.git
cd openssh-portable
autoreconf
./configure
make && make tests

Build-time Customisation

There are many build-time customisation options available. All Autoconf destination path flags (e.g. --prefix) are supported (and are usually required if you want to install OpenSSH).

For a full list of available flags, run ./configure --help but a few of the more frequently-used ones are described below. Some of these flags will require additional libraries and/or headers be installed.

Flag Meaning
--with-pam Enable PAM support. OpenPAM, Linux PAM and Solaris PAM are supported.
--with-libedit Enable libedit support for sftp.
--with-kerberos5 Enable Kerberos/GSSAPI support. Both Heimdal and MIT Kerberos implementations are supported.
--with-selinux Enable SELinux support.

Development

Portable OpenSSH development is discussed on the openssh-unix-dev mailing list (archive mirror). Bugs and feature requests are tracked on our Bugzilla.

Reporting bugs

Non-security bugs may be reported to the developers via Bugzilla or via the mailing list above. Security bugs should be reported to openssh@openssh.com.