Portable OpenSSH
Go to file
Damien Miller 9444d82678 rewrite README
Include basic build instructions and comments on commonly-used build-
time flags, links to the manual pages and other resources.

Now in Markdown format for better viewing on github, etc.
2019-04-05 11:26:35 -07:00
contrib update versions 2019-04-05 03:41:52 +11:00
openbsd-compat Remove "struct ssh" from sys_auth_record_login. 2019-04-03 06:27:45 +11:00
regress Adjust softhsm2 path on Fedora Linux for regress 2019-03-29 22:37:15 +11:00
.depend upstream: openssh-7.9 accidentally reused the server's algorithm lists 2019-02-24 10:51:46 +11:00
.gitignore Add tags to .gitignore 2019-02-22 15:02:31 +11:00
.skipped-commit-ids upstream: Import new moduli. 2018-11-16 13:51:12 +11:00
aclocal.m4 Better detection of unsupported compiler options. 2018-06-08 13:55:59 +10:00
addrmatch.c upstream: fix some memory leaks spotted by Coverity via Jakub Jelen 2018-07-31 13:13:26 +10:00
atomicio.c upstream: Check for both EAGAIN and EWOULDBLOCK. This is a no-op 2019-01-24 14:40:03 +11:00
atomicio.h upstream: move client/server SSH-* banners to buffers under 2018-12-27 14:38:22 +11:00
audit-bsm.c last bits of old packet API / active_state global 2019-01-20 14:55:27 +11:00
audit-linux.c last bits of old packet API / active_state global 2019-01-20 14:55:27 +11: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
auth2-chall.c Remove support for S/Key 2018-07-31 12:59:30 +10:00
auth2-gss.c upstream: delay bailout for invalid authentic 2018-07-31 13:13:26 +10:00
auth2-hostbased.c upstream: remove last references to active_state 2019-01-20 09:45:18 +11:00
auth2-kbdint.c upstream: sshd: switch authentication to sshbuf API; ok djm@ 2018-07-10 15:27:43 +10:00
auth2-none.c upstream: sshd: switch authentication to sshbuf API; ok djm@ 2018-07-10 15:27:43 +10:00
auth2-passwd.c upstream: sshd: switch authentication to sshbuf API; ok djm@ 2018-07-10 15:27:43 +10:00
auth2-pubkey.c upstream: print the full pubkey being attempted at loglevel >= 2019-01-22 22:42:01 +11:00
auth2.c upstream: Fix authentication failures when "AuthenticationMethods 2019-03-26 10:20:41 +11:00
auth-bsdauth.c upstream: sshd: switch authentication to sshbuf API; ok djm@ 2018-07-10 15:27:43 +10:00
auth-krb5.c upstream: sshd: switch authentication to sshbuf API; ok djm@ 2018-07-10 15:27:43 +10:00
auth-options.c upstream: Allow ssh_config IdentityAgent directive to accept 2018-10-03 16:39:58 +10:00
auth-options.h upstream: permitlisten option for authorized_keys; ok markus@ 2018-06-07 04:27:20 +10:00
auth-pam.c remove PAM dependencies on old packet API 2019-01-20 10:22:18 +11:00
auth-pam.h remove PAM dependencies on old packet API 2019-01-20 10:22:18 +11:00
auth-passwd.c check pw_passwd != NULL here too 2018-10-11 11:29:35 +11:00
auth-rhosts.c upstream: sshd: switch authentication to sshbuf API; ok djm@ 2018-07-10 15:27:43 +10:00
auth-shadow.c Remove key.h from portable files too. 2018-07-12 14:57:46 +10:00
auth-sia.c Remove key.h from portable files too. 2018-07-12 14:57:46 +10:00
auth-sia.h
auth-skey.c Remove key.h from portable files too. 2018-07-12 14:57:46 +10:00
auth.c Remove "struct ssh" from sys_auth_record_login. 2019-04-03 06:27:45 +11:00
auth.h upstream: remove last references to active_state 2019-01-20 09:45:18 +11:00
authfd.c upstream: Request RSA-SHA2 signatures for 2018-12-28 10:06:50 +11:00
authfd.h upstream: remove prototype to long-gone function 2018-07-12 14:36:12 +10:00
authfile.c upstream: In sshkey_in_file(), ignore keys that are considered for 2018-09-21 22:49:09 +10:00
authfile.h
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 Update links to https. 2016-10-21 06:55:58 +11:00
canohost.c
canohost.h
chacha.c
chacha.h upstream commit 2016-08-29 11:20:28 +10:00
channels.c use same close logic for stderr as stdout 2019-02-08 14:50:36 +11:00
channels.h upstream: include a little more information about the status and 2018-10-04 10:44:49 +10:00
cipher-aes.c
cipher-aesctr.c
cipher-aesctr.h
cipher-chachapoly.c
cipher-chachapoly.h
cipher-ctr.c
cipher.c adapt -portable to OpenSSL 1.1x API 2018-09-13 12:13:50 +10:00
cipher.h upstream: hold our collective noses and use the openssl-1.1.x API in 2018-09-13 12:12:33 +10:00
cleanup.c
clientloop.c upstream: when logging/fataling on error, include a bit more detail 2019-04-03 09:34:03 +11:00
clientloop.h upstream: client: switch to sshbuf API; ok djm@ 2018-07-10 15:14:26 +10:00
compat.c upstream: revert compat.[ch] section of the following change. It 2018-08-13 12:42:13 +10:00
compat.h upstream: revert compat.[ch] section of the following change. It 2018-08-13 12:42:13 +10:00
config.guess
config.sub
configure.ac Allow building against OpenSSL dev (3.x) version. 2019-01-22 20:38:40 +11:00
crc32.c
crc32.h
CREDITS Remove now-obsolete CVS $Id tags from text files. 2016-08-17 13:40:58 +10:00
crypto_api.h upstream: Add support for a PQC KEX/KEM: 2019-01-21 22:07:02 +11:00
defines.h Remove support for S/Key 2018-07-31 12:59:30 +10:00
dh.c upstream: correct local variable name; from yawang AT microsoft.com 2018-11-16 13:51:12 +11:00
dh.h upstream: DH-GEX min value is now specified in RFC8270. ok djm@ 2019-01-21 10:46:03 +11:00
digest-libc.c upstream commit 2017-05-10 11:41:21 +10:00
digest-openssl.c upstream: hold our collective noses and use the openssl-1.1.x API in 2018-09-13 12:12:33 +10:00
digest.h upstream commit 2017-05-10 11:41:21 +10:00
dispatch.c upstream: allow sshpkt_fatal() to take a varargs format; we'll 2019-01-20 09:02:20 +11:00
dispatch.h upstream: remove last traces of old packet API! 2019-01-20 09:45:18 +11:00
dns.c upstream: Add experimental support for PQC XMSS keys (Extended 2018-02-26 11:40:41 +11:00
dns.h upstream: Add experimental support for PQC XMSS keys (Extended 2018-02-26 11:40:41 +11:00
ed25519.c
entropy.c Move RANDOM_SEED_SIZE outside ifdef. 2018-11-23 14:11:20 +11:00
entropy.h Adapt portable to legacy buffer API removal 2018-07-10 19:39:52 +10:00
fatal.c
fe25519.c
fe25519.h
fixalgorithms
fixpaths
ge25519_base.data
ge25519.c
ge25519.h
groupaccess.c upstream: Move checks for lists of users or groups into their own 2019-03-08 15:10:07 +11:00
groupaccess.h
gss-genr.c upstream: kerberos/gssapi fixes for buffer removal 2018-07-10 19:15:35 +10:00
gss-serv-krb5.c upstream: sshd: switch GSSAPI to sshbuf API; ok djm@ 2018-07-10 15:28:30 +10:00
gss-serv.c upstream: sshd: switch GSSAPI to sshbuf API; ok djm@ 2018-07-10 15:28:30 +10:00
hash.c upstream commit 2018-01-23 16:35:07 +11:00
hmac.c
hmac.h
hostfile.c upstream: memleaks; found by valgrind 2018-07-16 13:12:20 +10:00
hostfile.h
includes.h portability for sftp globbed ls sort by mtime 2017-06-10 23:41:25 +10:00
INSTALL Update required OpenSSL versions to match current. 2018-10-28 15:16:31 +11:00
install-sh Pull in newer install-sh from autoconf-2.69. 2017-12-01 17:07:08 +11:00
kex.c upstream: fix reversed arguments to kex_load_hostkey(); manifested as 2019-01-21 23:13:53 +11:00
kex.h upstream: pass most arguments to the KEX hash functions as sshbuf 2019-01-23 13:02:02 +11:00
kexc25519.c upstream: rename kex->kem_client_pub -> kex->client_pub now that 2019-01-21 23:13:03 +11:00
kexdh.c typo 2019-01-22 10:50:40 +11:00
kexecdh.c upstream: rename kex->kem_client_pub -> kex->client_pub now that 2019-01-21 23:13:03 +11:00
kexgen.c Fix build when configured --without-openssl. 2019-03-14 10:17:28 +11:00
kexgex.c upstream: pass most arguments to the KEX hash functions as sshbuf 2019-01-23 13:02:02 +11:00
kexgexc.c upstream: pass most arguments to the KEX hash functions as sshbuf 2019-01-23 13:02:02 +11:00
kexgexs.c upstream: pass most arguments to the KEX hash functions as sshbuf 2019-01-23 13:02:02 +11:00
kexsntrup4591761x25519.c new files need includes.h 2019-01-22 00:02:23 +11:00
krl.c upstream: allow key revocation by SHA256 hash and allow ssh-keygen 2018-09-12 16:49:21 +10:00
krl.h upstream: allow key revocation by SHA256 hash and allow ssh-keygen 2018-09-12 16:49:21 +10:00
LICENCE upstream commit 2017-05-01 10:05:04 +10:00
log.c upstream: avoid expensive channel_open_message() calls; ok djm@ 2018-07-31 12:20:13 +10:00
log.h upstream: avoid expensive channel_open_message() calls; ok djm@ 2018-07-31 12:20:13 +10:00
loginrec.c remove vestiges of old packet API from loginrec.c 2019-01-20 09:58:45 +11:00
loginrec.h remove vestiges of old packet API from loginrec.c 2019-01-20 09:58:45 +11:00
logintest.c
mac.c upstream commit 2017-05-10 11:41:21 +10:00
mac.h
Makefile.in upstream: rename kex->kem_client_pub -> kex->client_pub now that 2019-01-21 23:13:03 +11:00
match.c Use Cygwin-specific matching only for users+groups. 2019-03-12 09:19:19 +11:00
match.h upstream: Move checks for lists of users or groups into their own 2019-03-08 15:10:07 +11:00
md5crypt.c Remove assigned-to-but-never-used variable. 2018-02-13 16:27:09 +11:00
md5crypt.h Remove obsolete CVS $Id from source files. 2016-08-17 14:08:42 +10:00
mdoc2man.awk Remove remaining now-obsolete cvs $Ids. 2018-02-15 20:06:19 +11:00
misc.c upstream: Remove support for obsolete host/port syntax. 2019-01-24 12:30:30 +11:00
misc.h upstream: Remove support for obsolete host/port syntax. 2019-01-24 12:30:30 +11:00
mkinstalldirs Remove remaining now-obsolete cvs $Ids. 2018-02-15 20:06:19 +11:00
moduli Import new moduli. 2018-10-31 22:21:03 +11:00
moduli.5
moduli.c upstream: Remove 3 as a guess for possible generator during moduli 2019-01-24 12:30:30 +11:00
monitor_fdpass.c
monitor_fdpass.h
monitor_wrap.c upstream: Make sshpkt_get_bignum2() allocate the bignum it is 2019-01-21 21:47:28 +11:00
monitor_wrap.h last bits of old packet API / active_state global 2019-01-20 14:55:27 +11:00
monitor.c upstream: rename kex->kem_client_pub -> kex->client_pub now that 2019-01-21 23:13:03 +11:00
monitor.h upstream: remove last references to active_state 2019-01-20 09:45:18 +11:00
msg.c upstream: replace cast with call to sshbuf_mutable_ptr(); ok djm@ 2018-07-10 16:44:17 +10:00
msg.h
mux.c upstream: convert mux.c to new packet API 2019-01-20 09:02:36 +11:00
myproposal.h upstream: openssh-7.9 accidentally reused the server's algorithm lists 2019-02-24 10:51:46 +11:00
nchan2.ms
nchan.c upstream: when the peer sends a channel-close message, make sure we 2018-10-04 17:50:22 +10:00
nchan.ms
openssh.xml.in
opensshd.init.in Remove RSA1 host key generation. 2017-12-01 16:55:35 +11:00
OVERVIEW upstream: refer to OpenSSL not SSLeay; 2018-10-23 16:57:54 +11:00
packet.c upstream: in ssh_set_newkeys(), mention the direction that we're 2019-03-08 14:58:30 +11:00
packet.h upstream: pass values used in KEX hash computation as sshbuf 2019-01-21 23:13:03 +11:00
pathnames.h upstream: Add experimental support for PQC XMSS keys (Extended 2018-02-26 11:40:41 +11:00
pkcs11.h
platform-misc.c Split platform_sys_dir_uid into its own file 2017-08-25 13:25:01 +10:00
platform-pledge.c
platform-tracing.c Use ptrace(PT_DENY_ATTACH, ..) on OS X. 2016-11-01 08:12:33 +11:00
platform.c upstream: remove legacy key emulation layer; ok djm@ 2018-07-12 13:18:25 +10:00
platform.h Remove obsolete CVS $Id from source files. 2016-08-17 14:08:42 +10:00
poly1305.c
poly1305.h
progressmeter.c upstream: Have progressmeter force an update at the beginning and 2019-01-25 06:32:14 +11:00
progressmeter.h upstream: Have progressmeter force an update at the beginning and 2019-01-25 06:32:14 +11:00
PROTOCOL upstream: mention INFO@openssh.com for sending SIGINFO 2018-10-02 22:53:48 +10:00
PROTOCOL.agent update URL again 2017-10-01 10:32:25 +11:00
PROTOCOL.certkeys upstream: mention ssh-ed25519-cert-v01@openssh.com in list of cert 2018-11-16 13:50:32 +11:00
PROTOCOL.chacha20poly1305 upstream: lots of typos in comments/docs. Patch from Karsten Weiss 2018-04-10 10:17:15 +10:00
PROTOCOL.key
PROTOCOL.krl upstream: allow key revocation by SHA256 hash and allow ssh-keygen 2018-09-12 16:49:21 +10:00
PROTOCOL.mux upstream: Document mux proxy mode; added by Markus in openssh-7.4 2018-09-26 17:35:22 +10:00
readconf.c upstream: let PKCS11Provider=none do what users expect 2019-03-01 13:21:29 +11:00
readconf.h upstream: add a ssh_config "Match final" predicate 2018-11-23 16:09:12 +11:00
README rewrite README 2019-04-05 11:26:35 -07:00
README.dns
README.platform Many typo fixes from Karsten Weiss 2018-04-10 10:19:02 +10:00
README.privsep Remove references to UNICOS. 2018-02-15 22:28:14 +11:00
README.tun
readpass.c upstream: Print an \r in front of the password prompt so parts of 2019-01-20 09:01:57 +11:00
rijndael.c
rijndael.h
sandbox-capsicum.c Switch Capsicum header to sys/capsicum.h. 2017-08-28 16:48:27 +10:00
sandbox-darwin.c Add missing monitor.h include. 2016-12-16 15:02:24 +11:00
sandbox-null.c
sandbox-pledge.c
sandbox-rlimit.c upstream commit 2016-09-12 13:46:29 +10:00
sandbox-seccomp-filter.c add futex(2) syscall to seccomp sandbox 2018-09-15 19:37:48 +10:00
sandbox-solaris.c drop two more privileges in the Solaris sandbox 2017-06-09 14:44:43 +10:00
sandbox-systrace.c Allow nanosleep in preauth privsep child. 2018-04-13 16:23:57 +10:00
sc25519.c
sc25519.h
scp.1 upstream: check in scp client that filenames sent during 2019-01-27 09:42:39 +11:00
scp.c upstream: when checking that filenames sent by the server side 2019-02-10 22:24:24 +11:00
servconf.c upstream: whitespace 2019-03-26 10:20:41 +11:00
servconf.h upstream: convert servconf.c to new packet API 2019-01-20 09:02:44 +11:00
serverloop.c upstream: fix interaction between ClientAliveInterval and RekeyLimit 2019-03-27 20:30:58 +11:00
serverloop.h upstream commit 2017-09-12 17:37:02 +10:00
session.c session: Do not use removed API 2019-04-04 02:47:40 +11:00
session.h upstream: Add server support for signalling sessions via the SSH 2018-10-02 22:41:01 +10:00
sftp-client.c upstream: Have progressmeter force an update at the beginning and 2019-01-25 06:32:14 +11:00
sftp-client.h upstream: Add "-h" flag to sftp chown/chgrp/chmod commands to 2019-01-17 11:08:13 +11:00
sftp-common.c Include unistd.h for strmode(). 2019-01-24 10:07:03 +11:00
sftp-common.h
sftp-glob.c
sftp-server-main.c refactor libcrypto initialisation 2018-11-23 10:42:05 +11:00
sftp-server.8
sftp-server.c upstream: add support for a "lsetstat@openssh.com" extension. This 2019-01-17 11:08:13 +11:00
sftp.1 upstream: tweak previous; 2019-01-22 22:42:01 +11:00
sftp.c upstream: Add a -J option as a shortcut for -o Proxyjump= to scp(1) 2019-01-22 22:42:01 +11:00
sftp.h
smult_curve25519_ref.c
sntrup4591761.c Add includes.h for compat layer. 2019-04-01 20:07:23 +11:00
sntrup4591761.sh upstream: Add authors for public domain sntrup4591761 code; 2019-02-01 18:55:11 +11:00
ssh2.h
ssh_api.c upstream: rename kex->kem_client_pub -> kex->client_pub now that 2019-01-21 23:13:03 +11:00
ssh_api.h upstream: lots of typos in comments/docs. Patch from Karsten Weiss 2018-04-10 10:17:15 +10:00
ssh_config upstream: Remove obsolete "Protocol" from commented out examples. Patch 2019-02-04 15:01:38 +11:00
ssh_config.5 upstream: mention PKCS11Provide=none, reword a little and remove 2019-03-01 13:21:29 +11:00
ssh-add.1 upstream: add "-v" flags to ssh-add and ssh-pkcs11-helper to turn up 2019-01-21 23:56:52 +11:00
ssh-add.c upstream: add "-v" flags to ssh-add and ssh-pkcs11-helper to turn up 2019-01-21 23:56:52 +11:00
ssh-agent.1 upstream commit 2016-11-30 19:44:25 +11:00
ssh-agent.c upstream: backoff reading messages from active connections when the 2019-01-23 10:44:34 +11:00
ssh-dss.c adapt -portable to OpenSSL 1.1x API 2018-09-13 12:13:50 +10:00
ssh-ecdsa.c upstream: Make sshpkt_get_bignum2() allocate the bignum it is 2019-01-21 21:47:28 +11:00
ssh-ed25519.c
ssh-gss.h upstream: kerberos/gssapi fixes for buffer removal 2018-07-10 19:15:35 +10:00
ssh-keygen.1 upstream: PKCS#11 support is no longer limited to RSA; ok benno@ 2019-03-08 14:58:30 +11:00
ssh-keygen.c upstream: Expand comment to document rationale for default key 2019-03-26 10:20:22 +11:00
ssh-keyscan.1 upstream: move the input format details to -f; remove the output 2018-03-12 11:48:15 +11:00
ssh-keyscan.c upstream: make ssh-keyscan return a non-zero exit status if it 2019-01-27 09:42:19 +11:00
ssh-keysign.8
ssh-keysign.c last bits of old packet API / active_state global 2019-01-20 14:55:27 +11:00
ssh-pkcs11-client.c upstream: add "-v" flags to ssh-add and ssh-pkcs11-helper to turn up 2019-01-21 23:56:52 +11:00
ssh-pkcs11-helper.8 upstream: add "-v" flags to ssh-add and ssh-pkcs11-helper to turn up 2019-01-21 23:56:52 +11:00
ssh-pkcs11-helper.c upstream: switch mainloop from select(2) to poll(2); ok deraadt@ 2019-01-23 13:02:50 +11:00
ssh-pkcs11.c upstream: fix use-after-free in ssh-pkcs11; found by hshoexer w/AFL 2019-03-26 10:20:22 +11:00
ssh-pkcs11.h upstream: add support for ECDSA keys in PKCS#11 tokens 2019-01-21 10:54:37 +11:00
ssh-rsa.c adapt -portable to OpenSSL 1.1x API 2018-09-13 12:13:50 +10:00
ssh-sandbox.h
ssh-xmss.c Add WITH_XMSS, move to prevent conflicts. 2018-02-28 19:59:35 +11:00
ssh.1 upstream: benno helped me clean up the tcp forwarding section; 2019-03-26 10:20:22 +11:00
ssh.c upstream: remove last references to active_state 2019-01-20 09:45:18 +11:00
ssh.h upstream: move client/server SSH-* banners to buffers under 2018-12-27 14:38:22 +11:00
sshbuf-getput-basic.c upstream commit 2017-06-01 14:55:23 +10:00
sshbuf-getput-crypto.c upstream: Make sshpkt_get_bignum2() allocate the bignum it is 2019-01-21 21:47:28 +11:00
sshbuf-misc.c
sshbuf.c upstream: make grandparent-parent-child sshbuf chains robust to 2018-11-16 17:18:29 +11:00
sshbuf.h upstream: Make sshpkt_get_bignum2() allocate the bignum it is 2019-01-21 21:47:28 +11:00
sshconnect2.c upstream: fix regression in r1.302 reported by naddy@ - only the first 2019-02-13 10:55:44 +11:00
sshconnect.c upstream: dup stdout/in for proxycommand=-, otherwise stdout might 2019-03-01 13:21:29 +11:00
sshconnect.h upstream: convert sshconnect.c to new packet API 2019-01-20 09:02:36 +11:00
sshd_config upstream: the UseLogin option was removed, so remove it here too. 2018-04-10 10:16:36 +10:00
sshd_config.5 upstream: full stop in the wrong place; 2019-03-26 10:20:22 +11:00
sshd.8 upstream: Switch authorized_keys example from ssh-dss to ssh-rsa 2018-07-26 13:54:30 +10:00
sshd.c upstream: Fix two race conditions in sshd relating to SIGHUP: 2019-03-01 13:34:00 +11:00
ssherr.c upstream: Improve strictness and control over RSA-SHA2 signature 2018-07-03 23:26:36 +10:00
ssherr.h upstream: Improve strictness and control over RSA-SHA2 signature 2018-07-03 23:26:36 +10:00
sshkey-xmss.c upstream: replace cast with call to sshbuf_mutable_ptr(); ok djm@ 2018-07-10 16:44:17 +10:00
sshkey-xmss.h upstream: Add experimental support for PQC XMSS keys (Extended 2018-02-26 11:40:41 +11:00
sshkey.c upstream: Make sshpkt_get_bignum2() allocate the bignum it is 2019-01-21 21:47:28 +11:00
sshkey.h upstream: add support for ECDSA keys in PKCS#11 tokens 2019-01-21 10:54:37 +11:00
sshlogin.c upstream: sshd: switch loginmsg to sshbuf API; ok djm@ 2018-07-10 15:21:58 +10:00
sshlogin.h
sshpty.c Remove UNICOS support. 2018-02-15 20:04:02 +11:00
sshpty.h upstream commit 2016-11-29 16:51:27 +11:00
sshtty.c
survey.sh.in
TODO Remove support for S/Key 2018-07-31 12:59:30 +10:00
ttymodes.c upstream: ttymodes: switch to sshbuf API; ok djm@ 2018-07-10 15:19:12 +10:00
ttymodes.h upstream commit 2017-05-01 10:05:04 +10:00
uidswap.c upstream: Remove support for running ssh(1) setuid and fatal if 2018-07-19 21:41:42 +10:00
uidswap.h upstream: Remove support for running ssh(1) setuid and fatal if 2018-07-19 21:41:42 +10:00
umac128.c upstream commit 2018-02-09 20:00:18 +11:00
umac.c upstream: lots of typos in comments/docs. Patch from Karsten Weiss 2018-04-10 10:17:15 +10:00
umac.h
utf8.c upstream: AIX reports the CODESET as "ISO8859-1" in the POSIX locale. 2018-08-22 07:52:26 +10:00
utf8.h Force Turkish locales back to C/POSIX; bz#2643 2016-12-12 13:58:59 +11:00
uuencode.c
uuencode.h
verify.c
version.h upstream: openssh-8.0 2019-04-05 03:39:46 +11:00
xmalloc.c upstream commit 2017-06-01 14:55:22 +10:00
xmalloc.h upstream commit 2017-06-01 14:55:22 +10:00
xmss_commons.c upstream: Add $OpenBSD$ markers to xmss files to help keep synced 2018-03-02 14:29:25 +11:00
xmss_commons.h Remove extra XMSS #endif 2018-03-05 10:22:32 +11:00
xmss_fast.c upstream: ssh/xmss: fix build; ok djm@ 2018-03-23 11:05:39 +11:00
xmss_fast.h upstream: Add $OpenBSD$ markers to xmss files to help keep synced 2018-03-02 14:29:25 +11:00
xmss_hash_address.c upstream: Add $OpenBSD$ markers to xmss files to help keep synced 2018-03-02 14:29:25 +11:00
xmss_hash_address.h upstream: Add $OpenBSD$ markers to xmss files to help keep synced 2018-03-02 14:29:25 +11:00
xmss_hash.c upstream: Add $OpenBSD$ markers to xmss files to help keep synced 2018-03-02 14:29:25 +11:00
xmss_hash.h upstream: Add $OpenBSD$ markers to xmss files to help keep synced 2018-03-02 14:29:25 +11:00
xmss_wots.c upstream: lots of typos in comments/docs. Patch from Karsten Weiss 2018-04-10 10:17:15 +10:00
xmss_wots.h upstream: Remove unneeded (local) include. ok markus@ 2018-03-02 14:30:02 +11:00

# Portable OpenSSH

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](https://openssh.com) 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:

* [ssh(1)](https://man.openbsd.org/ssh.1)
* [sshd(8)](https://man.openbsd.org/sshd.8)
* [ssh-keygen(1)](https://man.openbsd.org/ssh-keygen.1)
* [ssh-agent(1)](https://man.openbsd.org/ssh-agent.1)
* [scp(1)](https://man.openbsd.org/scp.1)
* [sftp(1)](https://man.openbsd.org/sftp.1)
* [ssh-keyscan(8)](https://man.openbsd.org/ssh-keyscan.8)
* [sftp-server(8)](https://man.openbsd.org/sftp-server.8)

## Stable Releases

Stable release tarballs are available from a number of [download mirrors](https://www.openssh.com/portable.html#downloads). We recommend the use of a stable release for most users. Please read the [release notes](https://www.openssh.com/releasenotes.html) 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, as well as [zlib](https://www.zlib.net/) and ``libcrypto`` from either [LibreSSL](https://www.libressl.org/) or [OpenSSL](https://www.openssl.org) to build. Certain platforms and build-time options may require additional dependencies.

### Building a release

Releases include a pre-built copy of the ``configure`` script and may be built using:

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

See the [Build-time Customisation](#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 git, you'll need [autoconf](https://www.gnu.org/software/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](https://en.wikipedia.org/wiki/Pluggable_authentication_module) support. [OpenPAM](https://www.openpam.org/), [Linux PAM](http://www.linux-pam.org/) and Solaris PAM are supported.
``--with-libedit`` | Enable [libedit](https://www.thrysoee.dk/editline/) support for sftp.
``--with-kerberos5`` | Enable Kerberos/GSSAPI support. Both [Heimdal](https://www.h5l.org/) and [MIT](https://web.mit.edu/kerberos/) Kerberos implementations are supported.
``--with-selinux`` | Enable [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) support.

## Development

Portable OpenSSH development is discussed on the [openssh-unix-dev mailing list](https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev) ([archive mirror](https://marc.info/?l=openssh-unix-dev)). Bugs and feature requests are tracked on our [Bugzilla](https://bugzilla.mindrot.org/).

## Reporting bugs

_Non-security_ bugs may be reported to the developers via [Bugzilla](https://bugzilla.mindrot.org/) or via the mailing list above. Security bugs should be reported to [openssh@openssh.com](mailto:openssh.openssh.com).