Operator workspace recovery backup
  • C 70.2%
  • C++ 13.2%
  • Shell 7.5%
  • Roff 5%
  • M4 2.5%
  • Other 1.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dtucker@openbsd.org 773771be4a
upstream: Check for unsigned integer overflow when calculating how
much beyond our local window a peer has sent.  Prevents them sneaking past
the grace we allow.

bz#4031, from rhowe425@gmail.com, ok markus@

OpenBSD-Commit-ID: 51d7a8cb8338501c2a2c117945b8e728c1645ee5
2026-10-13 15:41:54 +11:00
.github Rerun OSSFuzz on Makefile changes. 2026-10-09 22:20:53 +11:00
contrib update RPM spec files 2026-10-06 18:57:28 +11:00
m4
openbsd-compat Remove %w from snprintf compat code. 2026-10-11 20:52:59 +11:00
regress Put log.h before readconf.h and add ssh.h for defs. 2026-10-09 23:14:58 +11:00
.depend .depend 2026-10-06 19:01:18 +11:00
.git_allowed_signers
.git_allowed_signers.asc regen signature on allowed_signers file 2026-04-15 08:14:58 +10:00
.gitignore
.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
addr.h
addrmatch.c
atomicio.c Remove the NetBSD BROKEN_READ_COMPARISON workaround. 2026-09-22 14:18:47 +10:00
atomicio.h
audit-bsm.c
audit-linux.c
audit.c
audit.h
auth-bsdauth.c
auth-krb5.c
auth-options.c upstream: Propagate authorized_keys "resrict" keyword 2026-09-16 10:56:51 +10:00
auth-options.h
auth-pam.c properly bail out when PAM changes username 2026-04-02 18:32:00 +11:00
auth-pam.h
auth-passwd.c
auth-rhosts.c
auth-shadow.c
auth-sia.c
auth-sia.h
auth.c upstream: fix ChannelTimeout and RekeyLimit not being applied in 2026-07-21 16:20:16 +10:00
auth.h upstream: Account pubkey checks separately to auth attempts 2026-09-16 10:49:38 +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: Check key and CA sig type during key parsing 2026-09-16 10:56:51 +10:00
auth2-kbdint.c
auth2-methods.c
auth2-none.c
auth2-passwd.c
auth2-pubkey.c upstream: Remove the SSH_OLD_SESSIONID bug compatibility bit. It 2026-10-13 15:41:54 +11:00
auth2-pubkeyfile.c upstream: correctly match ECDSA signature algorithms against 2026-04-02 18:53:25 +11:00
auth2.c upstream: Reset GSSAPI client state before authentication 2026-09-16 10:56:52 +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
authfile.c upstream: prefer fstat to stat when it's trivial to do so 2026-07-21 15:22:55 +10:00
authfile.h
bitmap.c
bitmap.h
buildpkg.sh.in
canohost.c
canohost.h
chacha.c upstream: chacha: avoid -Wunterminated-string-initialization 2026-05-21 14:06:34 +10:00
chacha.h
channels.c upstream: Check for unsigned integer overflow when calculating how 2026-10-13 15:41:54 +11:00
channels.h upstream: draft-ietf-sshm-ssh-agent became RFC 9987 ok dtucker@ 2026-09-17 12:34:51 -06:00
cipher-aes.c
cipher-aesctr.c
cipher-aesctr.h
cipher-chachapoly-libcrypto.c
cipher-chachapoly.c
cipher-chachapoly.h
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
clientloop.c upstream: draft-ietf-sshm-ssh-agent became RFC 9987 ok dtucker@ 2026-09-17 12:34:51 -06:00
clientloop.h upstream: backout 2026-10-01 08:50:52 +10:00
compat.c upstream: Remove the SSH_OLD_SESSIONID bug compatibility bit. It 2026-10-13 15:41:54 +11:00
compat.h upstream: Remove the SSH_OLD_SESSIONID bug compatibility bit. It 2026-10-13 15:41:54 +11:00
config.guess
config.sub
configure.ac remove the --disable-fd-passing configure option 2026-10-06 16:50:50 +11:00
CREDITS
crypto_api.h upstream: switch from SUPERCOP ed25519 to libsodium 2026-09-16 10:58:41 +10:00
defines.h disable features when post-auth sshd runs as root 2026-10-06 16:50:34 +11:00
dh.c
dh.h
digest-libc.c
digest-openssl.c
digest.h
dispatch.c
dispatch.h
dns.c
dns.h
ed25519-openssl.c upstream: switch from SUPERCOP ed25519 to libsodium 2026-09-16 10:58:41 +10:00
ed25519.c upstream: switch from SUPERCOP ed25519 to libsodium 2026-09-16 10:58:41 +10:00
ed25519.sh upstream: whitespace 2026-09-16 11:10:41 +10:00
entropy.c
entropy.h
fatal.c
fixalgorithms Correct filename in comment. 2026-08-03 22:06:26 +10:00
fixpaths
groupaccess.c
groupaccess.h
gss-genr.c
gss-serv-krb5.c
gss-serv.c upstream: ssh_gssapi_cleanup_global_client() needs a prototype 2026-10-07 20:14:05 +11:00
hmac.c
hmac.h
hostfile.c
hostfile.h
includes.h
INSTALL Update x11-ssh-askpass upstream location. 2026-08-12 19:58:33 +10:00
install-sh
kex-names.c upstream: remove mlkem768brainpoolp256r1-sha256; requested by 2026-08-08 17:35:08 +10:00
kex.c upstream: Include local and remote versions in ~I connection info. 2026-09-22 14:21:18 +10:00
kex.h upstream: Add WarnWeakCrypto to sshd 2026-09-16 10:56:51 +10:00
kexc25519.c
kexdh.c
kexecdh.c upstream: fix ML-KEM/ECDH interop problem (does not affect 2026-08-03 16:44:04 +10:00
kexgen.c upstream: Check key and CA sig type during key parsing 2026-09-16 10:56:51 +10:00
kexgex.c
kexgexc.c upstream: Check key and CA sig type during key parsing 2026-09-16 10:56:51 +10:00
kexgexs.c
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
krl.c
krl.h
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
log.c
log.h
loginrec.c
loginrec.h
logintest.c
mac.c upstream: avoid validating bad cipher or mac lists in config files 2026-05-21 14:06:01 +10:00
mac.h
Makefile.in sshd doesn't need sshpty.c any more 2026-09-15 17:00:01 +10:00
match.c upstream: Replace the old recursive match_pattern() with an 2026-05-31 15:03:54 +10:00
match.h
mdoc2man.awk
misc-agent.c upstream: ssh-agent: fix socket cleanup for -a option (no pathspec) 2026-10-01 08:50:37 +10:00
misc.c Add fallback for mkdir_path() without openat(). 2026-09-17 07:51:31 +10:00
misc.h upstream: convert channel timeouts to use floating points, allows 2026-09-16 16:29:14 +10:00
mkinstalldirs
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
moduli.c
monitor.c upstream: Remove the SSH_OLD_SESSIONID bug compatibility bit. It 2026-10-13 15:41:54 +11:00
monitor.h
monitor_fdpass.c
monitor_fdpass.h
monitor_wrap.c upstream: convert channel timeouts to use floating points, allows 2026-09-16 16:29:14 +10:00
monitor_wrap.h upstream: big refactor of sshd config management code. 2026-05-31 22:23:40 +10:00
msg.c
msg.h
mux.c upstream: backout 2026-10-01 08:50:52 +10:00
myproposal.h upstream: enable ssh-mldsa44-ed25519 as an allowed CA signature 2026-10-08 09:34:19 +11:00
nchan.c
nchan.ms
nchan2.ms
openssh.xml.in
opensshd.init.in
OVERVIEW
packet.c upstream: Check that compressed payloads don't inflate beyond the 2026-10-01 08:50:52 +10:00
packet.h upstream: Include local and remote versions in ~I connection info. 2026-09-22 14:21:18 +10:00
pathnames.h upstream: Allow specification of agent socket directories 2026-09-16 10:56:41 +10:00
pkcs11.h
platform-listen.c
platform-misc.c
platform-pledge.c
platform-tracing.c
platform.c
platform.h
poly1305.c
poly1305.h
progressmeter.c upstream: switch from int to long long for bandwidth calculations; 2026-03-30 18:50:47 +11:00
progressmeter.h
PROTOCOL
PROTOCOL.agent upstream: refer to RFC9987 instead of I-D 2026-06-04 14:40:51 +10:00
PROTOCOL.key
PROTOCOL.krl
PROTOCOL.mux
PROTOCOL.sshsig upstream: Correct language. From viktorashi via github PR#713. 2026-10-10 14:32:05 +11:00
PROTOCOL.u2f
readconf.c upstream: Further restrict the characters allowed in a command-line 2026-10-05 17:18:46 +11:00
readconf.h upstream: Extend TCPKeepAlive to support forwardings too 2026-09-16 10:49:09 +10:00
README
README.dns
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
rijndael.c
rijndael.h
sandbox-capsicum.c
sandbox-darwin.c
sandbox-null.c
sandbox-rlimit.c
sandbox-seccomp-filter.c allow madvise(..., MADV_DONTNEED_LOCKED) 2026-09-15 15:37:02 +10:00
sandbox-solaris.c
scp.1 upstream: Remove scp '-s' flag from synopsis, the flag has been a 2026-09-15 15:24:00 +10:00
scp.c upstream: start process of deprecating the -R flag. This was the 2026-10-01 17:28:40 +10:00
SECURITY.md
servconf.c upstream: Add missing sentinel to multistate_keepalives. bz#4028 2026-10-10 14:32:03 +11:00
servconf.h upstream: Add WarnWeakCrypto to sshd 2026-09-16 10:56:51 +10:00
serverloop.c upstream: make authorized_keys "restrict" keyword apply correctly 2026-07-21 15:23:23 +10:00
serverloop.h
session.c upstream: Allow specification of agent socket directories 2026-09-16 10:56:41 +10:00
session.h
sftp-client.c upstream: sftp: be stricter in accepting paths returned by the 2026-10-01 13:23:18 +10:00
sftp-client.h upstream: Add '-p' to sftp mkdir/lmkdir to create directories as 2026-09-15 15:28:00 +10:00
sftp-common.c
sftp-common.h
sftp-glob.c
sftp-realpath.c
sftp-server-main.c
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 upstream: sftp: don't crash when glob(3) results lack stat information 2026-09-15 18:24:11 +10:00
sftp-usergroup.h
sftp.1 upstream: Add '-p' to sftp mkdir/lmkdir to create directories as 2026-09-15 15:28:00 +10:00
sftp.c upstream: sftp: be stricter in accepting paths returned by the 2026-10-01 13:23:18 +10:00
sftp.h
sk-api.h
sk-usbhid.c upstream: sk-usbhid: preserve UV requirement for resident keys 2026-09-15 18:30:38 +10:00
smult_curve25519_ref.c
sntrup761.c
sntrup761.sh
srclimit.c
srclimit.h
ssh-add.1 upstream: bz3635 - ssh-add -P to skip PIN entry 2026-09-16 16:28:59 +10:00
ssh-add.c upstream: Plug leak. CID 913600. 2026-09-17 12:34:54 -06:00
ssh-agent.1 upstream: use Nm instead of Xr to self 2026-09-19 20:02:40 -06:00
ssh-agent.c upstream: ssh-agent: no unlink(2) on empty filename 2026-10-01 08:50:51 +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: switch from SUPERCOP ed25519 to libsodium 2026-09-16 10:58:41 +10:00
ssh-ed25519.c upstream: switch from SUPERCOP ed25519 to libsodium 2026-09-16 10:58:41 +10:00
ssh-gss.h upstream: ssh_gssapi_cleanup_global_client() needs a prototype 2026-10-07 20:14:05 +11:00
ssh-keygen.1 upstream: mention default KDF rounds is now 32 2026-10-01 17:28:40 +10:00
ssh-keygen.c upstream: minor leak of fingerprint text when printing 2026-09-15 18:04:33 +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: fix the bit length of ML-DSA 44/Ed25519 keys that was 2026-10-01 17:28:39 +10:00
ssh-pkcs11-client.c
ssh-pkcs11-helper.8
ssh-pkcs11-helper.c
ssh-pkcs11.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
ssh-pkcs11.h
ssh-rsa.c
ssh-sandbox.h
ssh-sk-client.c
ssh-sk-helper.8
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
ssh.1 upstream: Change three paragraphs in different parts of the manual 2026-09-15 15:24:00 +10:00
ssh.c upstream: backout 2026-10-01 08:50:52 +10:00
ssh.h
ssh2.h
ssh_api.c Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
ssh_api.h
ssh_config
ssh_config.5 upstream: Missing comma. bz#4015, from calestyo@scientia.org. 2026-10-09 20:15:01 +11:00
sshbuf-getput-basic.c
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
sshbuf.c
sshbuf.h Remove support for libcrypto w/out ECC. 2026-07-31 21:41:10 +10:00
sshconnect.c upstream: Add WarnWeakCrypto to sshd 2026-09-16 10:56:51 +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: Remove the SSH_OLD_SESSIONID bug compatibility bit. It 2026-10-13 15:41:54 +11:00
sshd-auth.c upstream: Add WarnWeakCrypto to sshd 2026-09-16 10:56:51 +10:00
sshd-debug.sh
sshd-session.c disable features when post-auth sshd runs as root 2026-10-06 16:50:34 +11:00
sshd.8 upstream: IANA has allocated a non-vendor codepoint for 2026-09-02 19:14:52 +10:00
sshd.c upstream: spelling; ok deraadt@ 2026-09-16 12:31:59 -06:00
sshd_config upstream: document mldsa44-ed25519 host key and public key 2026-07-21 15:23:04 +10:00
sshd_config.5 upstream: Fix typo in ssh-mldsa44-ed25519. bz#4027, from 2026-10-09 20:15:00 +11:00
ssherr-libcrypto.c upstream: ssherr-libcrypto: avoid use of deprecated 2026-07-01 09:57:31 +10:00
ssherr-nolibcrypto.c
ssherr.c upstream: Check key and CA sig type during key parsing 2026-09-16 10:56:51 +10:00
ssherr.h upstream: Check key and CA sig type during key parsing 2026-09-16 10:56:51 +10:00
sshkey.c upstream: Implement a maximum number of KDF rounds that will be 2026-10-01 17:28:40 +10:00
sshkey.h upstream: Check key and CA sig type during key parsing 2026-09-16 10:56:51 +10:00
sshlogin.c
sshlogin.h
sshpty.c upstream: disconnect_controlling_tty() is the only thing from sshpty.c 2026-09-15 16:47:18 +10:00
sshpty.h upstream: g/c prototype 2026-09-15 16:49:57 +10:00
sshsig.c
sshsig.h
sshtty.c
survey.sh.in
TODO
ttymodes.c
ttymodes.h
uidswap.c
uidswap.h
umac.c
umac.h
umac128.c
utf8.c special treatment for a more Turkic languages 2026-08-20 11:20:34 +10:00
utf8.h
version.h upstream: openssh-10.6 2026-10-06 18:56:49 +11:00
xmalloc.c
xmalloc.h

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.