summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2015-11-29 17:18:35 +0000
committerColin Watson <cjwatson@debian.org>2015-11-29 17:32:50 +0000
commit0b372585c0026f78676f1414510ec9f87a383803 (patch)
treea3fa6b329a8a5e9841b526f30332d21fc110118a /debian
parent24ffa45372888d206f21e1864e3911024c6d5e62 (diff)
parent6d0faf6dc76ac8cc73d6f8e478db7c97f7013a2d (diff)
New upstream release (7.0p1).
Diffstat (limited to 'debian')
-rw-r--r--debian/.git-dpm14
-rw-r--r--debian/changelog48
-rw-r--r--debian/patches/auth-log-verbosity.patch4
-rw-r--r--debian/patches/authorized-keys-man-symlink.patch2
-rw-r--r--debian/patches/backport-do-not-resend-username-to-pam.patch43
-rw-r--r--debian/patches/backport-fix-pty-permissions.patch33
-rw-r--r--debian/patches/backport-kbdint-duplicates.patch53
-rw-r--r--debian/patches/backport-pam-use-after-free.patch39
-rw-r--r--debian/patches/backport-regress-principals-command-noexec.patch257
-rw-r--r--debian/patches/debian-banner.patch32
-rw-r--r--debian/patches/debian-config.patch49
-rw-r--r--debian/patches/dnssec-sshfp.patch2
-rw-r--r--debian/patches/doc-hash-tab-completion.patch6
-rw-r--r--debian/patches/doc-upstart.patch4
-rw-r--r--debian/patches/gnome-ssh-askpass2-icon.patch2
-rw-r--r--debian/patches/gssapi.patch126
-rw-r--r--debian/patches/helpful-wait-terminate.patch2
-rw-r--r--debian/patches/keepalive-extensions.patch28
-rw-r--r--debian/patches/lintian-symlink-pickiness.patch2
-rw-r--r--debian/patches/mention-ssh-keygen-on-keychange.patch2
-rw-r--r--debian/patches/no-openssl-version-status.patch2
-rw-r--r--debian/patches/openbsd-docs.patch16
-rw-r--r--debian/patches/package-versioning.patch10
-rw-r--r--debian/patches/quieter-signals.patch6
-rw-r--r--debian/patches/restore-tcp-wrappers.patch18
-rw-r--r--debian/patches/scp-quoting.patch2
-rw-r--r--debian/patches/selinux-role.patch14
-rw-r--r--debian/patches/series5
-rw-r--r--debian/patches/shell-path.patch2
-rw-r--r--debian/patches/sigstop.patch6
-rw-r--r--debian/patches/ssh-agent-setgid.patch2
-rw-r--r--debian/patches/ssh-argv0.patch6
-rw-r--r--debian/patches/ssh-vulnkey-compat.patch10
-rw-r--r--debian/patches/ssh1-keepalive.patch12
-rw-r--r--debian/patches/syslog-level-silent.patch10
-rw-r--r--debian/patches/user-group-modes.patch20
36 files changed, 245 insertions, 644 deletions
diff --git a/debian/.git-dpm b/debian/.git-dpm
index 4e4b48bbf..77f37fc00 100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@ -1,8 +1,8 @@
1# see git-dpm(1) from git-dpm package 1# see git-dpm(1) from git-dpm package
211ff24a98751edfc86ef0eed102f840eaa50d4e1 26d0faf6dc76ac8cc73d6f8e478db7c97f7013a2d
311ff24a98751edfc86ef0eed102f840eaa50d4e1 36d0faf6dc76ac8cc73d6f8e478db7c97f7013a2d
4544df7a04ae5b5c1fc30be7c445ad685d7a02dc9 458ddb8ad21f21f5358db0204c4ba9abf94a1ca11
5544df7a04ae5b5c1fc30be7c445ad685d7a02dc9 558ddb8ad21f21f5358db0204c4ba9abf94a1ca11
6openssh_6.9p1.orig.tar.gz 6openssh_7.0p1.orig.tar.gz
786ab57f00d0fd9bf302760f2f6deac1b6e9df265 7d8337c9eab91d360d104f6dd805f8b32089c063c
81487617 81493376
diff --git a/debian/changelog b/debian/changelog
index ccee48f9d..42450d4d3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,51 @@
1openssh (1:7.0p1-1) UNRELEASED; urgency=medium
2
3 * New upstream release (http://www.openssh.com/txt/release-7.0, closes:
4 #785190):
5 - Support for the legacy SSH version 1 protocol is disabled by default
6 at compile time.
7 - Support for the 1024-bit diffie-hellman-group1-sha1 key exchange is
8 disabled by default at run-time. It may be re-enabled using the
9 instructions at http://www.openssh.com/legacy.html
10 - Support for ssh-dss, ssh-dss-cert-* host and user keys is disabled by
11 default at run-time. These may be re-enabled using the instructions
12 at http://www.openssh.com/legacy.html
13 - Support for the legacy v00 cert format has been removed.
14 - The default for the sshd_config(5) PermitRootLogin option has changed
15 from "yes" to "prohibit-password".
16 - PermitRootLogin=without-password/prohibit-password now bans all
17 interactive authentication methods, allowing only public-key,
18 hostbased and GSSAPI authentication (previously it permitted
19 keyboard-interactive and password-less authentication if those were
20 enabled).
21 - ssh_config(5): Add PubkeyAcceptedKeyTypes option to control which
22 public key types are available for user authentication.
23 - sshd_config(5): Add HostKeyAlgorithms option to control which public
24 key types are offered for host authentications.
25 - ssh(1), sshd(8): Extend Ciphers, MACs, KexAlgorithms,
26 HostKeyAlgorithms, PubkeyAcceptedKeyTypes and HostbasedKeyTypes
27 options to allow appending to the default set of algorithms instead of
28 replacing it. Options may now be prefixed with a '+' to append to the
29 default, e.g. "HostKeyAlgorithms=+ssh-dss".
30 - sshd_config(5): PermitRootLogin now accepts an argument of
31 'prohibit-password' as a less-ambiguous synonym of 'without-
32 password'.
33 - ssh(1), sshd(8): Add compatability workarounds for Cisco and more
34 PuTTY versions.
35 - Fix some omissions and errors in the PROTOCOL and PROTOCOL.mux
36 documentation relating to Unix domain socket forwarding.
37 - ssh(1): Improve the ssh(1) manual page to include a better description
38 of Unix domain socket forwarding (closes: #779068).
39 - ssh(1), ssh-agent(1): Skip uninitialised PKCS#11 slots, fixing
40 failures to load keys when they are present.
41 - ssh(1), ssh-agent(1): Do not ignore PKCS#11 hosted keys that wth empty
42 CKA_ID.
43 - sshd(8): Clarify documentation for UseDNS option.
44 - Check realpath(3) behaviour matches what sftp-server requires and use
45 a replacement if necessary.
46
47 -- Colin Watson <cjwatson@debian.org> Sun, 29 Nov 2015 17:32:44 +0000
48
1openssh (1:6.9p1-3) unstable; urgency=medium 49openssh (1:6.9p1-3) unstable; urgency=medium
2 50
3 * ssh_config(5): Fix markup errors in description of GSSAPITrustDns 51 * ssh_config(5): Fix markup errors in description of GSSAPITrustDns
diff --git a/debian/patches/auth-log-verbosity.patch b/debian/patches/auth-log-verbosity.patch
index fa9542064..2ed4f2a4c 100644
--- a/debian/patches/auth-log-verbosity.patch
+++ b/debian/patches/auth-log-verbosity.patch
@@ -1,4 +1,4 @@
1From c38beb3f8dcdd55621ad9d8fd3bc204d19a0a741 Mon Sep 17 00:00:00 2001 1From 1b41ad6426301c5131aa93d0915f6c5e69cff645 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:02 +0000 3Date: Sun, 9 Feb 2014 16:10:02 +0000
4Subject: Quieten logs when multiple from= restrictions are used 4Subject: Quieten logs when multiple from= restrictions are used
@@ -16,7 +16,7 @@ Patch-Name: auth-log-verbosity.patch
16 4 files changed, 32 insertions(+), 9 deletions(-) 16 4 files changed, 32 insertions(+), 9 deletions(-)
17 17
18diff --git a/auth-options.c b/auth-options.c 18diff --git a/auth-options.c b/auth-options.c
19index facfc02..9ab1880 100644 19index e387697..f1e3ddf 100644
20--- a/auth-options.c 20--- a/auth-options.c
21+++ b/auth-options.c 21+++ b/auth-options.c
22@@ -58,9 +58,20 @@ int forced_tun_device = -1; 22@@ -58,9 +58,20 @@ int forced_tun_device = -1;
diff --git a/debian/patches/authorized-keys-man-symlink.patch b/debian/patches/authorized-keys-man-symlink.patch
index 6bcb877e9..6d2e5b544 100644
--- a/debian/patches/authorized-keys-man-symlink.patch
+++ b/debian/patches/authorized-keys-man-symlink.patch
@@ -1,4 +1,4 @@
1From 924de4a0afa1e2605c4dbc10dcdb5afc7a5d44ac Mon Sep 17 00:00:00 2001 1From 0eeaf623887ccabc08ba20150618daca817fcba5 Mon Sep 17 00:00:00 2001
2From: Tomas Pospisek <tpo_deb@sourcepole.ch> 2From: Tomas Pospisek <tpo_deb@sourcepole.ch>
3Date: Sun, 9 Feb 2014 16:10:07 +0000 3Date: Sun, 9 Feb 2014 16:10:07 +0000
4Subject: Install authorized_keys(5) as a symlink to sshd(8) 4Subject: Install authorized_keys(5) as a symlink to sshd(8)
diff --git a/debian/patches/backport-do-not-resend-username-to-pam.patch b/debian/patches/backport-do-not-resend-username-to-pam.patch
deleted file mode 100644
index 865221b4f..000000000
--- a/debian/patches/backport-do-not-resend-username-to-pam.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1From 4e1468d9745c5e32d99cd85386dfc74e90a5cf14 Mon Sep 17 00:00:00 2001
2From: Damien Miller <djm@mindrot.org>
3Date: Tue, 11 Aug 2015 13:33:24 +1000
4Subject: Don't resend username to PAM; it already has it.
5
6Pointed out by Moritz Jodeit; ok dtucker@
7
8Origin: upstream, https://anongit.mindrot.org/openssh.git/commit/?id=d4697fe9a28dab7255c60433e4dd23cf7fce8a8b
9Forwarded: not-needed
10Last-Update: 2015-08-19
11
12Patch-Name: backport-do-not-resend-username-to-pam.patch
13---
14 monitor.c | 2 --
15 monitor_wrap.c | 1 -
16 2 files changed, 3 deletions(-)
17
18diff --git a/monitor.c b/monitor.c
19index 3a3d2f0..3fc9253 100644
20--- a/monitor.c
21+++ b/monitor.c
22@@ -1127,9 +1127,7 @@ extern KbdintDevice sshpam_device;
23 int
24 mm_answer_pam_init_ctx(int sock, Buffer *m)
25 {
26-
27 debug3("%s", __func__);
28- authctxt->user = buffer_get_string(m, NULL);
29 sshpam_ctxt = (sshpam_device.init_ctx)(authctxt);
30 sshpam_authok = NULL;
31 buffer_clear(m);
32diff --git a/monitor_wrap.c b/monitor_wrap.c
33index 6ae72a0..6799911 100644
34--- a/monitor_wrap.c
35+++ b/monitor_wrap.c
36@@ -632,7 +632,6 @@ mm_sshpam_init_ctx(Authctxt *authctxt)
37
38 debug3("%s", __func__);
39 buffer_init(&m);
40- buffer_put_cstring(&m, authctxt->user);
41 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_INIT_CTX, &m);
42 debug3("%s: waiting for MONITOR_ANS_PAM_INIT_CTX", __func__);
43 mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_INIT_CTX, &m);
diff --git a/debian/patches/backport-fix-pty-permissions.patch b/debian/patches/backport-fix-pty-permissions.patch
deleted file mode 100644
index 1449014c0..000000000
--- a/debian/patches/backport-fix-pty-permissions.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From fe597b453a89c6d1dcbbd91cacef80adc3b52fc9 Mon Sep 17 00:00:00 2001
2From: "djm@openbsd.org" <djm@openbsd.org>
3Date: Thu, 30 Jul 2015 23:09:15 +0000
4Subject: Fix pty permissions
5
6Origin: upstream, https://anongit.mindrot.org/openssh.git/commit/?id=6f941396b6835ad18018845f515b0c4fe20be21a
7Forwarded: not-needed
8Last-Update: 2015-08-19
9
10Patch-Name: backport-fix-pty-permissions.patch
11---
12 sshpty.c | 4 ++--
13 1 file changed, 2 insertions(+), 2 deletions(-)
14
15diff --git a/sshpty.c b/sshpty.c
16index 0e32b39..e89efb7 100644
17--- a/sshpty.c
18+++ b/sshpty.c
19@@ -1,4 +1,4 @@
20-/* $OpenBSD: sshpty.c,v 1.29 2014/09/03 18:55:07 djm Exp $ */
21+/* $OpenBSD: sshpty.c,v 1.30 2015/07/30 23:09:15 djm Exp $ */
22 /*
23 * Author: Tatu Ylonen <ylo@cs.hut.fi>
24 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
25@@ -197,7 +197,7 @@ pty_setowner(struct passwd *pw, const char *tty, const char *role)
26 /* Determine the group to make the owner of the tty. */
27 grp = getgrnam("tty");
28 gid = (grp != NULL) ? grp->gr_gid : pw->pw_gid;
29- mode = (grp != NULL) ? 0622 : 0600;
30+ mode = (grp != NULL) ? 0620 : 0600;
31
32 /*
33 * Change owner and mode of the tty as required.
diff --git a/debian/patches/backport-kbdint-duplicates.patch b/debian/patches/backport-kbdint-duplicates.patch
deleted file mode 100644
index c73c36ce0..000000000
--- a/debian/patches/backport-kbdint-duplicates.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1From 0bcdac377a097516ed875bfa000598d6cca86c13 Mon Sep 17 00:00:00 2001
2From: "djm@openbsd.org" <djm@openbsd.org>
3Date: Sat, 18 Jul 2015 07:57:14 +0000
4Subject: only query each keyboard-interactive device once per authentication
5 request regardless of how many times it is listed
6
7ok markus@
8
9Origin: upstream, https://anongit.mindrot.org/openssh.git/commit/?id=5b64f85bb811246c59ebab70aed331f26ba37b18
10Forwarded: not-needed
11Last-Update: 2015-08-19
12
13Patch-Name: backport-kbdint-duplicates.patch
14---
15 auth2-chall.c | 11 ++++++++---
16 1 file changed, 8 insertions(+), 3 deletions(-)
17
18diff --git a/auth2-chall.c b/auth2-chall.c
19index ddabe1a..4aff09d 100644
20--- a/auth2-chall.c
21+++ b/auth2-chall.c
22@@ -1,4 +1,4 @@
23-/* $OpenBSD: auth2-chall.c,v 1.42 2015/01/19 20:07:45 markus Exp $ */
24+/* $OpenBSD: auth2-chall.c,v 1.43 2015/07/18 07:57:14 djm Exp $ */
25 /*
26 * Copyright (c) 2001 Markus Friedl. All rights reserved.
27 * Copyright (c) 2001 Per Allansson. All rights reserved.
28@@ -83,6 +83,7 @@ struct KbdintAuthctxt
29 void *ctxt;
30 KbdintDevice *device;
31 u_int nreq;
32+ u_int devices_done;
33 };
34
35 #ifdef USE_PAM
36@@ -169,11 +170,15 @@ kbdint_next_device(Authctxt *authctxt, KbdintAuthctxt *kbdintctxt)
37 if (len == 0)
38 break;
39 for (i = 0; devices[i]; i++) {
40- if (!auth2_method_allowed(authctxt,
41+ if ((kbdintctxt->devices_done & (1 << i)) != 0 ||
42+ !auth2_method_allowed(authctxt,
43 "keyboard-interactive", devices[i]->name))
44 continue;
45- if (strncmp(kbdintctxt->devices, devices[i]->name, len) == 0)
46+ if (strncmp(kbdintctxt->devices, devices[i]->name,
47+ len) == 0) {
48 kbdintctxt->device = devices[i];
49+ kbdintctxt->devices_done |= 1 << i;
50+ }
51 }
52 t = kbdintctxt->devices;
53 kbdintctxt->devices = t[len] ? xstrdup(t+len+1) : NULL;
diff --git a/debian/patches/backport-pam-use-after-free.patch b/debian/patches/backport-pam-use-after-free.patch
deleted file mode 100644
index 4baecfe1b..000000000
--- a/debian/patches/backport-pam-use-after-free.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From fddd7fcb2ccb2cfdd88328d1149c0c31fcf21447 Mon Sep 17 00:00:00 2001
2From: Damien Miller <djm@mindrot.org>
3Date: Tue, 11 Aug 2015 13:34:12 +1000
4Subject: set sshpam_ctxt to NULL after free
5
6Avoids use-after-free in monitor when privsep child is compromised.
7Reported by Moritz Jodeit; ok dtucker@
8
9Origin: upstream, https://anongit.mindrot.org/openssh.git/commit/?id=5e75f5198769056089fb06c4d738ab0e5abc66f7
10Forwarded: not-needed
11Last-Update: 2015-08-19
12
13Patch-Name: backport-pam-use-after-free.patch
14---
15 monitor.c | 4 +++-
16 1 file changed, 3 insertions(+), 1 deletion(-)
17
18diff --git a/monitor.c b/monitor.c
19index 3fc9253..c063ad1 100644
20--- a/monitor.c
21+++ b/monitor.c
22@@ -1209,14 +1209,16 @@ mm_answer_pam_respond(int sock, Buffer *m)
23 int
24 mm_answer_pam_free_ctx(int sock, Buffer *m)
25 {
26+ int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt;
27
28 debug3("%s", __func__);
29 (sshpam_device.free_ctx)(sshpam_ctxt);
30+ sshpam_ctxt = sshpam_authok = NULL;
31 buffer_clear(m);
32 mm_request_send(sock, MONITOR_ANS_PAM_FREE_CTX, m);
33 auth_method = "keyboard-interactive";
34 auth_submethod = "pam";
35- return (sshpam_authok == sshpam_ctxt);
36+ return r;
37 }
38 #endif
39
diff --git a/debian/patches/backport-regress-principals-command-noexec.patch b/debian/patches/backport-regress-principals-command-noexec.patch
deleted file mode 100644
index 6b6649638..000000000
--- a/debian/patches/backport-regress-principals-command-noexec.patch
+++ /dev/null
@@ -1,257 +0,0 @@
1From 11ff24a98751edfc86ef0eed102f840eaa50d4e1 Mon Sep 17 00:00:00 2001
2From: Damien Miller <djm@mindrot.org>
3Date: Mon, 10 Aug 2015 11:13:44 +1000
4Subject: let principals-command.sh work for noexec /var/run
5
6Origin: upstream, https://anongit.mindrot.org/openssh.git/commit/?id=55b263fb7cfeacb81aaf1c2036e0394c881637da
7Forwarded: not-needed
8Last-Update: 2015-08-20
9
10Patch-Name: backport-regress-principals-command-noexec.patch
11---
12 regress/principals-command.sh | 222 +++++++++++++++++++++---------------------
13 1 file changed, 113 insertions(+), 109 deletions(-)
14
15diff --git a/regress/principals-command.sh b/regress/principals-command.sh
16index 9006437..b90a8cf 100644
17--- a/regress/principals-command.sh
18+++ b/regress/principals-command.sh
19@@ -14,15 +14,15 @@ fi
20
21 # Establish a AuthorizedPrincipalsCommand in /var/run where it will have
22 # acceptable directory permissions.
23-PRINCIPALS_COMMAND="/var/run/principals_command_${LOGNAME}"
24-cat << _EOF | $SUDO sh -c "cat > '$PRINCIPALS_COMMAND'"
25+PRINCIPALS_CMD="/var/run/principals_command_${LOGNAME}"
26+cat << _EOF | $SUDO sh -c "cat > '$PRINCIPALS_CMD'"
27 #!/bin/sh
28 test "x\$1" != "x${LOGNAME}" && exit 1
29 test -f "$OBJ/authorized_principals_${LOGNAME}" &&
30 exec cat "$OBJ/authorized_principals_${LOGNAME}"
31 _EOF
32 test $? -eq 0 || fatal "couldn't prepare principals command"
33-$SUDO chmod 0755 "$PRINCIPALS_COMMAND"
34+$SUDO chmod 0755 "$PRINCIPALS_CMD"
35
36 # Create a CA key and a user certificate.
37 ${SSHKEYGEN} -q -N '' -t ed25519 -f $OBJ/user_ca_key || \
38@@ -33,109 +33,113 @@ ${SSHKEYGEN} -q -s $OBJ/user_ca_key -I "regress user key for $USER" \
39 -z $$ -n ${USER},mekmitasdigoat $OBJ/cert_user_key || \
40 fatal "couldn't sign cert_user_key"
41
42-# Test explicitly-specified principals
43-for privsep in yes no ; do
44- _prefix="privsep $privsep"
45-
46- # Setup for AuthorizedPrincipalsCommand
47- rm -f $OBJ/authorized_keys_$USER
48- (
49- cat $OBJ/sshd_proxy_bak
50- echo "UsePrivilegeSeparation $privsep"
51- echo "AuthorizedKeysFile none"
52- echo "AuthorizedPrincipalsCommand $PRINCIPALS_COMMAND %u"
53- echo "AuthorizedPrincipalsCommandUser ${LOGNAME}"
54- echo "TrustedUserCAKeys $OBJ/user_ca_key.pub"
55- ) > $OBJ/sshd_proxy
56-
57- # XXX test missing command
58- # XXX test failing command
59-
60- # Empty authorized_principals
61- verbose "$tid: ${_prefix} empty authorized_principals"
62- echo > $OBJ/authorized_principals_$USER
63- ${SSH} -2i $OBJ/cert_user_key \
64- -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
65- if [ $? -eq 0 ]; then
66- fail "ssh cert connect succeeded unexpectedly"
67- fi
68-
69- # Wrong authorized_principals
70- verbose "$tid: ${_prefix} wrong authorized_principals"
71- echo gregorsamsa > $OBJ/authorized_principals_$USER
72- ${SSH} -2i $OBJ/cert_user_key \
73- -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
74- if [ $? -eq 0 ]; then
75- fail "ssh cert connect succeeded unexpectedly"
76- fi
77-
78- # Correct authorized_principals
79- verbose "$tid: ${_prefix} correct authorized_principals"
80- echo mekmitasdigoat > $OBJ/authorized_principals_$USER
81- ${SSH} -2i $OBJ/cert_user_key \
82- -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
83- if [ $? -ne 0 ]; then
84- fail "ssh cert connect failed"
85- fi
86-
87- # authorized_principals with bad key option
88- verbose "$tid: ${_prefix} authorized_principals bad key opt"
89- echo 'blah mekmitasdigoat' > $OBJ/authorized_principals_$USER
90- ${SSH} -2i $OBJ/cert_user_key \
91- -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
92- if [ $? -eq 0 ]; then
93- fail "ssh cert connect succeeded unexpectedly"
94- fi
95-
96- # authorized_principals with command=false
97- verbose "$tid: ${_prefix} authorized_principals command=false"
98- echo 'command="false" mekmitasdigoat' > \
99- $OBJ/authorized_principals_$USER
100- ${SSH} -2i $OBJ/cert_user_key \
101- -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
102- if [ $? -eq 0 ]; then
103- fail "ssh cert connect succeeded unexpectedly"
104- fi
105-
106-
107- # authorized_principals with command=true
108- verbose "$tid: ${_prefix} authorized_principals command=true"
109- echo 'command="true" mekmitasdigoat' > \
110- $OBJ/authorized_principals_$USER
111- ${SSH} -2i $OBJ/cert_user_key \
112- -F $OBJ/ssh_proxy somehost false >/dev/null 2>&1
113- if [ $? -ne 0 ]; then
114- fail "ssh cert connect failed"
115- fi
116-
117- # Setup for principals= key option
118- rm -f $OBJ/authorized_principals_$USER
119- (
120- cat $OBJ/sshd_proxy_bak
121- echo "UsePrivilegeSeparation $privsep"
122- ) > $OBJ/sshd_proxy
123-
124- # Wrong principals list
125- verbose "$tid: ${_prefix} wrong principals key option"
126- (
127- printf 'cert-authority,principals="gregorsamsa" '
128- cat $OBJ/user_ca_key.pub
129- ) > $OBJ/authorized_keys_$USER
130- ${SSH} -2i $OBJ/cert_user_key \
131- -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
132- if [ $? -eq 0 ]; then
133- fail "ssh cert connect succeeded unexpectedly"
134- fi
135-
136- # Correct principals list
137- verbose "$tid: ${_prefix} correct principals key option"
138- (
139- printf 'cert-authority,principals="mekmitasdigoat" '
140- cat $OBJ/user_ca_key.pub
141- ) > $OBJ/authorized_keys_$USER
142- ${SSH} -2i $OBJ/cert_user_key \
143- -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
144- if [ $? -ne 0 ]; then
145- fail "ssh cert connect failed"
146- fi
147-done
148+if [ -x $PRINCIPALS_CMD ]; then
149+ # Test explicitly-specified principals
150+ for privsep in yes no ; do
151+ _prefix="privsep $privsep"
152+
153+ # Setup for AuthorizedPrincipalsCommand
154+ rm -f $OBJ/authorized_keys_$USER
155+ (
156+ cat $OBJ/sshd_proxy_bak
157+ echo "UsePrivilegeSeparation $privsep"
158+ echo "AuthorizedKeysFile none"
159+ echo "AuthorizedPrincipalsCommand $PRINCIPALS_CMD %u"
160+ echo "AuthorizedPrincipalsCommandUser ${LOGNAME}"
161+ echo "TrustedUserCAKeys $OBJ/user_ca_key.pub"
162+ ) > $OBJ/sshd_proxy
163+
164+ # XXX test missing command
165+ # XXX test failing command
166+
167+ # Empty authorized_principals
168+ verbose "$tid: ${_prefix} empty authorized_principals"
169+ echo > $OBJ/authorized_principals_$USER
170+ ${SSH} -2i $OBJ/cert_user_key \
171+ -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
172+ if [ $? -eq 0 ]; then
173+ fail "ssh cert connect succeeded unexpectedly"
174+ fi
175+
176+ # Wrong authorized_principals
177+ verbose "$tid: ${_prefix} wrong authorized_principals"
178+ echo gregorsamsa > $OBJ/authorized_principals_$USER
179+ ${SSH} -2i $OBJ/cert_user_key \
180+ -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
181+ if [ $? -eq 0 ]; then
182+ fail "ssh cert connect succeeded unexpectedly"
183+ fi
184+
185+ # Correct authorized_principals
186+ verbose "$tid: ${_prefix} correct authorized_principals"
187+ echo mekmitasdigoat > $OBJ/authorized_principals_$USER
188+ ${SSH} -2i $OBJ/cert_user_key \
189+ -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
190+ if [ $? -ne 0 ]; then
191+ fail "ssh cert connect failed"
192+ fi
193+
194+ # authorized_principals with bad key option
195+ verbose "$tid: ${_prefix} authorized_principals bad key opt"
196+ echo 'blah mekmitasdigoat' > $OBJ/authorized_principals_$USER
197+ ${SSH} -2i $OBJ/cert_user_key \
198+ -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
199+ if [ $? -eq 0 ]; then
200+ fail "ssh cert connect succeeded unexpectedly"
201+ fi
202+
203+ # authorized_principals with command=false
204+ verbose "$tid: ${_prefix} authorized_principals command=false"
205+ echo 'command="false" mekmitasdigoat' > \
206+ $OBJ/authorized_principals_$USER
207+ ${SSH} -2i $OBJ/cert_user_key \
208+ -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
209+ if [ $? -eq 0 ]; then
210+ fail "ssh cert connect succeeded unexpectedly"
211+ fi
212+
213+ # authorized_principals with command=true
214+ verbose "$tid: ${_prefix} authorized_principals command=true"
215+ echo 'command="true" mekmitasdigoat' > \
216+ $OBJ/authorized_principals_$USER
217+ ${SSH} -2i $OBJ/cert_user_key \
218+ -F $OBJ/ssh_proxy somehost false >/dev/null 2>&1
219+ if [ $? -ne 0 ]; then
220+ fail "ssh cert connect failed"
221+ fi
222+
223+ # Setup for principals= key option
224+ rm -f $OBJ/authorized_principals_$USER
225+ (
226+ cat $OBJ/sshd_proxy_bak
227+ echo "UsePrivilegeSeparation $privsep"
228+ ) > $OBJ/sshd_proxy
229+
230+ # Wrong principals list
231+ verbose "$tid: ${_prefix} wrong principals key option"
232+ (
233+ printf 'cert-authority,principals="gregorsamsa" '
234+ cat $OBJ/user_ca_key.pub
235+ ) > $OBJ/authorized_keys_$USER
236+ ${SSH} -2i $OBJ/cert_user_key \
237+ -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
238+ if [ $? -eq 0 ]; then
239+ fail "ssh cert connect succeeded unexpectedly"
240+ fi
241+
242+ # Correct principals list
243+ verbose "$tid: ${_prefix} correct principals key option"
244+ (
245+ printf 'cert-authority,principals="mekmitasdigoat" '
246+ cat $OBJ/user_ca_key.pub
247+ ) > $OBJ/authorized_keys_$USER
248+ ${SSH} -2i $OBJ/cert_user_key \
249+ -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
250+ if [ $? -ne 0 ]; then
251+ fail "ssh cert connect failed"
252+ fi
253+ done
254+else
255+ echo "SKIPPED: $PRINCIPALS_COMMAND not executable " \
256+ "(/var/run mounted noexec?)"
257+fi
diff --git a/debian/patches/debian-banner.patch b/debian/patches/debian-banner.patch
index cbbe6b790..35659cd33 100644
--- a/debian/patches/debian-banner.patch
+++ b/debian/patches/debian-banner.patch
@@ -1,4 +1,4 @@
1From 692e965f7be2a33a6fecc392a2cb8023977f9c31 Mon Sep 17 00:00:00 2001 1From bb18ca3880d333834c89f535032cdf12bc362fdf Mon Sep 17 00:00:00 2001
2From: Kees Cook <kees@debian.org> 2From: Kees Cook <kees@debian.org>
3Date: Sun, 9 Feb 2014 16:10:06 +0000 3Date: Sun, 9 Feb 2014 16:10:06 +0000
4Subject: Add DebianBanner server configuration option 4Subject: Add DebianBanner server configuration option
@@ -8,7 +8,7 @@ initial protocol handshake, for those scared by package-versioning.patch.
8 8
9Bug-Debian: http://bugs.debian.org/562048 9Bug-Debian: http://bugs.debian.org/562048
10Forwarded: not-needed 10Forwarded: not-needed
11Last-Update: 2015-08-19 11Last-Update: 2015-11-29
12 12
13Patch-Name: debian-banner.patch 13Patch-Name: debian-banner.patch
14--- 14---
@@ -19,10 +19,10 @@ Patch-Name: debian-banner.patch
19 4 files changed, 18 insertions(+), 1 deletion(-) 19 4 files changed, 18 insertions(+), 1 deletion(-)
20 20
21diff --git a/servconf.c b/servconf.c 21diff --git a/servconf.c b/servconf.c
22index 8a5bd7b..fe3e311 100644 22index ed3a88d..a778f44 100644
23--- a/servconf.c 23--- a/servconf.c
24+++ b/servconf.c 24+++ b/servconf.c
25@@ -169,6 +169,7 @@ initialize_server_options(ServerOptions *options) 25@@ -171,6 +171,7 @@ initialize_server_options(ServerOptions *options)
26 options->ip_qos_bulk = -1; 26 options->ip_qos_bulk = -1;
27 options->version_addendum = NULL; 27 options->version_addendum = NULL;
28 options->fingerprint_hash = -1; 28 options->fingerprint_hash = -1;
@@ -36,10 +36,10 @@ index 8a5bd7b..fe3e311 100644
36 options->fingerprint_hash = SSH_FP_HASH_DEFAULT; 36 options->fingerprint_hash = SSH_FP_HASH_DEFAULT;
37+ if (options->debian_banner == -1) 37+ if (options->debian_banner == -1)
38+ options->debian_banner = 1; 38+ options->debian_banner = 1;
39 /* Turn privilege separation on by default */ 39
40 if (use_privsep == -1) 40 if (kex_assemble_names(KEX_SERVER_ENCRYPT, &options->ciphers) != 0 ||
41 use_privsep = PRIVSEP_NOSANDBOX; 41 kex_assemble_names(KEX_SERVER_MAC, &options->macs) != 0 ||
42@@ -419,6 +422,7 @@ typedef enum { 42@@ -430,6 +433,7 @@ typedef enum {
43 sAuthenticationMethods, sHostKeyAgent, sPermitUserRC, 43 sAuthenticationMethods, sHostKeyAgent, sPermitUserRC,
44 sStreamLocalBindMask, sStreamLocalBindUnlink, 44 sStreamLocalBindMask, sStreamLocalBindUnlink,
45 sAllowStreamLocalForwarding, sFingerprintHash, 45 sAllowStreamLocalForwarding, sFingerprintHash,
@@ -47,7 +47,7 @@ index 8a5bd7b..fe3e311 100644
47 sDeprecated, sUnsupported 47 sDeprecated, sUnsupported
48 } ServerOpCodes; 48 } ServerOpCodes;
49 49
50@@ -565,6 +569,7 @@ static struct { 50@@ -577,6 +581,7 @@ static struct {
51 { "streamlocalbindunlink", sStreamLocalBindUnlink, SSHCFG_ALL }, 51 { "streamlocalbindunlink", sStreamLocalBindUnlink, SSHCFG_ALL },
52 { "allowstreamlocalforwarding", sAllowStreamLocalForwarding, SSHCFG_ALL }, 52 { "allowstreamlocalforwarding", sAllowStreamLocalForwarding, SSHCFG_ALL },
53 { "fingerprinthash", sFingerprintHash, SSHCFG_GLOBAL }, 53 { "fingerprinthash", sFingerprintHash, SSHCFG_GLOBAL },
@@ -55,7 +55,7 @@ index 8a5bd7b..fe3e311 100644
55 { NULL, sBadOption, 0 } 55 { NULL, sBadOption, 0 }
56 }; 56 };
57 57
58@@ -1850,6 +1855,10 @@ process_server_config_line(ServerOptions *options, char *line, 58@@ -1867,6 +1872,10 @@ process_server_config_line(ServerOptions *options, char *line,
59 options->fingerprint_hash = value; 59 options->fingerprint_hash = value;
60 break; 60 break;
61 61
@@ -67,10 +67,10 @@ index 8a5bd7b..fe3e311 100644
67 logit("%s line %d: Deprecated option %s", 67 logit("%s line %d: Deprecated option %s",
68 filename, linenum, arg); 68 filename, linenum, arg);
69diff --git a/servconf.h b/servconf.h 69diff --git a/servconf.h b/servconf.h
70index b99b270..ba7b739 100644 70index 778ba17..161fa37 100644
71--- a/servconf.h 71--- a/servconf.h
72+++ b/servconf.h 72+++ b/servconf.h
73@@ -196,6 +196,8 @@ typedef struct { 73@@ -197,6 +197,8 @@ typedef struct {
74 char *auth_methods[MAX_AUTH_METHODS]; 74 char *auth_methods[MAX_AUTH_METHODS];
75 75
76 int fingerprint_hash; 76 int fingerprint_hash;
@@ -80,10 +80,10 @@ index b99b270..ba7b739 100644
80 80
81 /* Information about the incoming connection as used by Match */ 81 /* Information about the incoming connection as used by Match */
82diff --git a/sshd.c b/sshd.c 82diff --git a/sshd.c b/sshd.c
83index 96e75c6..7886d0e 100644 83index e3ac37b..d9f5199 100644
84--- a/sshd.c 84--- a/sshd.c
85+++ b/sshd.c 85+++ b/sshd.c
86@@ -442,7 +442,8 @@ sshd_exchange_identification(int sock_in, int sock_out) 86@@ -443,7 +443,8 @@ sshd_exchange_identification(int sock_in, int sock_out)
87 } 87 }
88 88
89 xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s", 89 xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s",
@@ -94,10 +94,10 @@ index 96e75c6..7886d0e 100644
94 options.version_addendum, newline); 94 options.version_addendum, newline);
95 95
96diff --git a/sshd_config.5 b/sshd_config.5 96diff --git a/sshd_config.5 b/sshd_config.5
97index 1269bbd..a5afbc3 100644 97index 154e87e..641e1fa 100644
98--- a/sshd_config.5 98--- a/sshd_config.5
99+++ b/sshd_config.5 99+++ b/sshd_config.5
100@@ -528,6 +528,11 @@ or 100@@ -533,6 +533,11 @@ or
101 .Dq no . 101 .Dq no .
102 The default is 102 The default is
103 .Dq delayed . 103 .Dq delayed .
diff --git a/debian/patches/debian-config.patch b/debian/patches/debian-config.patch
index dd33c00a6..aae4e7d34 100644
--- a/debian/patches/debian-config.patch
+++ b/debian/patches/debian-config.patch
@@ -1,4 +1,4 @@
1From 0cce5c4c1de33c4172ce8ebc0f93e717995779f8 Mon Sep 17 00:00:00 2001 1From 6d0faf6dc76ac8cc73d6f8e478db7c97f7013a2d Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:18 +0000 3Date: Sun, 9 Feb 2014 16:10:18 +0000
4Subject: Various Debian-specific configuration changes 4Subject: Various Debian-specific configuration changes
@@ -14,15 +14,12 @@ worms.
14ssh: Enable GSSAPIAuthentication and disable GSSAPIDelegateCredentials by 14ssh: Enable GSSAPIAuthentication and disable GSSAPIDelegateCredentials by
15default. 15default.
16 16
17sshd: Refer to /usr/share/doc/openssh-server/README.Debian.gz alongside
18PermitRootLogin default.
19
20Document all of this, along with several sshd defaults set in 17Document all of this, along with several sshd defaults set in
21debian/openssh-server.postinst. 18debian/openssh-server.postinst.
22 19
23Author: Russ Allbery <rra@debian.org> 20Author: Russ Allbery <rra@debian.org>
24Forwarded: not-needed 21Forwarded: not-needed
25Last-Update: 2015-08-19 22Last-Update: 2015-11-29
26 23
27Patch-Name: debian-config.patch 24Patch-Name: debian-config.patch
28--- 25---
@@ -30,15 +27,14 @@ Patch-Name: debian-config.patch
30 ssh.1 | 21 +++++++++++++++++++++ 27 ssh.1 | 21 +++++++++++++++++++++
31 ssh_config | 7 ++++++- 28 ssh_config | 7 ++++++-
32 ssh_config.5 | 19 ++++++++++++++++++- 29 ssh_config.5 | 19 ++++++++++++++++++-
33 sshd_config | 3 ++-
34 sshd_config.5 | 25 +++++++++++++++++++++++++ 30 sshd_config.5 | 25 +++++++++++++++++++++++++
35 6 files changed, 73 insertions(+), 4 deletions(-) 31 5 files changed, 71 insertions(+), 3 deletions(-)
36 32
37diff --git a/readconf.c b/readconf.c 33diff --git a/readconf.c b/readconf.c
38index 5f6c37f..f0769b5 100644 34index c0ba5a7..e4e1cba 100644
39--- a/readconf.c 35--- a/readconf.c
40+++ b/readconf.c 36+++ b/readconf.c
41@@ -1748,7 +1748,7 @@ fill_default_options(Options * options) 37@@ -1749,7 +1749,7 @@ fill_default_options(Options * options)
42 if (options->forward_x11 == -1) 38 if (options->forward_x11 == -1)
43 options->forward_x11 = 0; 39 options->forward_x11 = 0;
44 if (options->forward_x11_trusted == -1) 40 if (options->forward_x11_trusted == -1)
@@ -48,14 +44,13 @@ index 5f6c37f..f0769b5 100644
48 options->forward_x11_timeout = 1200; 44 options->forward_x11_timeout = 1200;
49 if (options->exit_on_forward_failure == -1) 45 if (options->exit_on_forward_failure == -1)
50diff --git a/ssh.1 b/ssh.1 46diff --git a/ssh.1 b/ssh.1
51index 2178863..e2cce49 100644 47index 05b7f10..649d6c3 100644
52--- a/ssh.1 48--- a/ssh.1
53+++ b/ssh.1 49+++ b/ssh.1
54@@ -670,12 +670,33 @@ option and the 50@@ -755,6 +755,16 @@ directive in
55 directive in
56 .Xr ssh_config 5 51 .Xr ssh_config 5
57 for more information. 52 for more information.
58+.Pp 53 .Pp
59+(Debian-specific: X11 forwarding is not subjected to X11 SECURITY extension 54+(Debian-specific: X11 forwarding is not subjected to X11 SECURITY extension
60+restrictions by default, because too many programs currently crash in this 55+restrictions by default, because too many programs currently crash in this
61+mode. 56+mode.
@@ -65,13 +60,14 @@ index 2178863..e2cce49 100644
65+.Dq no 60+.Dq no
66+to restore the upstream behaviour. 61+to restore the upstream behaviour.
67+This may change in future depending on client-side improvements.) 62+This may change in future depending on client-side improvements.)
63+.Pp
68 .It Fl x 64 .It Fl x
69 Disables X11 forwarding. 65 Disables X11 forwarding.
70 .It Fl Y 66 .Pp
71 Enables trusted X11 forwarding. 67@@ -763,6 +773,17 @@ Enables trusted X11 forwarding.
72 Trusted X11 forwardings are not subjected to the X11 SECURITY extension 68 Trusted X11 forwardings are not subjected to the X11 SECURITY extension
73 controls. 69 controls.
74+.Pp 70 .Pp
75+(Debian-specific: This option does nothing in the default configuration: it 71+(Debian-specific: This option does nothing in the default configuration: it
76+is equivalent to 72+is equivalent to
77+.Dq Cm ForwardX11Trusted No yes , 73+.Dq Cm ForwardX11Trusted No yes ,
@@ -82,6 +78,7 @@ index 2178863..e2cce49 100644
82+.Dq no 78+.Dq no
83+to restore the upstream behaviour. 79+to restore the upstream behaviour.
84+This may change in future depending on client-side improvements.) 80+This may change in future depending on client-side improvements.)
81+.Pp
85 .It Fl y 82 .It Fl y
86 Send log information using the 83 Send log information using the
87 .Xr syslog 3 84 .Xr syslog 3
@@ -110,7 +107,7 @@ index 228e5ab..c9386aa 100644
110+ GSSAPIAuthentication yes 107+ GSSAPIAuthentication yes
111+ GSSAPIDelegateCredentials no 108+ GSSAPIDelegateCredentials no
112diff --git a/ssh_config.5 b/ssh_config.5 109diff --git a/ssh_config.5 b/ssh_config.5
113index f25cedd..9a103f2 100644 110index 5bc04b0..aaa435a 100644
114--- a/ssh_config.5 111--- a/ssh_config.5
115+++ b/ssh_config.5 112+++ b/ssh_config.5
116@@ -74,6 +74,22 @@ Since the first obtained value for each parameter is used, more 113@@ -74,6 +74,22 @@ Since the first obtained value for each parameter is used, more
@@ -136,7 +133,7 @@ index f25cedd..9a103f2 100644
136 The configuration file has the following format: 133 The configuration file has the following format:
137 .Pp 134 .Pp
138 Empty lines and lines starting with 135 Empty lines and lines starting with
139@@ -716,7 +732,8 @@ token used for the session will be set to expire after 20 minutes. 136@@ -721,7 +737,8 @@ token used for the session will be set to expire after 20 minutes.
140 Remote clients will be refused access after this time. 137 Remote clients will be refused access after this time.
141 .Pp 138 .Pp
142 The default is 139 The default is
@@ -146,22 +143,8 @@ index f25cedd..9a103f2 100644
146 .Pp 143 .Pp
147 See the X11 SECURITY extension specification for full details on 144 See the X11 SECURITY extension specification for full details on
148 the restrictions imposed on untrusted clients. 145 the restrictions imposed on untrusted clients.
149diff --git a/sshd_config b/sshd_config
150index 1dfd0f1..23a338f 100644
151--- a/sshd_config
152+++ b/sshd_config
153@@ -41,7 +41,8 @@
154 # Authentication:
155
156 #LoginGraceTime 2m
157-#PermitRootLogin no
158+# See /usr/share/doc/openssh-server/README.Debian.gz.
159+#PermitRootLogin without-password
160 #StrictModes yes
161 #MaxAuthTries 6
162 #MaxSessions 10
163diff --git a/sshd_config.5 b/sshd_config.5 146diff --git a/sshd_config.5 b/sshd_config.5
164index 355b445..eb6bff8 100644 147index 7e40a27..92c23bc 100644
165--- a/sshd_config.5 148--- a/sshd_config.5
166+++ b/sshd_config.5 149+++ b/sshd_config.5
167@@ -57,6 +57,31 @@ Arguments may optionally be enclosed in double quotes 150@@ -57,6 +57,31 @@ Arguments may optionally be enclosed in double quotes
diff --git a/debian/patches/dnssec-sshfp.patch b/debian/patches/dnssec-sshfp.patch
index 60a12c72f..922798aea 100644
--- a/debian/patches/dnssec-sshfp.patch
+++ b/debian/patches/dnssec-sshfp.patch
@@ -1,4 +1,4 @@
1From 840c980f0a68a101c3aa1e884724ceff37e8e147 Mon Sep 17 00:00:00 2001 1From 460260ae3681984ef9fbc0f19fb5d46668eede4e Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:01 +0000 3Date: Sun, 9 Feb 2014 16:10:01 +0000
4Subject: Force use of DNSSEC even if "options edns0" isn't in resolv.conf 4Subject: Force use of DNSSEC even if "options edns0" isn't in resolv.conf
diff --git a/debian/patches/doc-hash-tab-completion.patch b/debian/patches/doc-hash-tab-completion.patch
index 259560a0d..b27e19f2b 100644
--- a/debian/patches/doc-hash-tab-completion.patch
+++ b/debian/patches/doc-hash-tab-completion.patch
@@ -1,4 +1,4 @@
1From e2a36dcb275a675203f22467863cce90829a64b7 Mon Sep 17 00:00:00 2001 1From def9d74686cb82e98686c1357babd9d24b8b7c54 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:11 +0000 3Date: Sun, 9 Feb 2014 16:10:11 +0000
4Subject: Document that HashKnownHosts may break tab-completion 4Subject: Document that HashKnownHosts may break tab-completion
@@ -13,10 +13,10 @@ Patch-Name: doc-hash-tab-completion.patch
13 1 file changed, 3 insertions(+) 13 1 file changed, 3 insertions(+)
14 14
15diff --git a/ssh_config.5 b/ssh_config.5 15diff --git a/ssh_config.5 b/ssh_config.5
16index 4e799cf..f25cedd 100644 16index b07e866..5bc04b0 100644
17--- a/ssh_config.5 17--- a/ssh_config.5
18+++ b/ssh_config.5 18+++ b/ssh_config.5
19@@ -804,6 +804,9 @@ Note that existing names and addresses in known hosts files 19@@ -809,6 +809,9 @@ Note that existing names and addresses in known hosts files
20 will not be converted automatically, 20 will not be converted automatically,
21 but may be manually hashed using 21 but may be manually hashed using
22 .Xr ssh-keygen 1 . 22 .Xr ssh-keygen 1 .
diff --git a/debian/patches/doc-upstart.patch b/debian/patches/doc-upstart.patch
index 96c76a651..c1fcbcd37 100644
--- a/debian/patches/doc-upstart.patch
+++ b/debian/patches/doc-upstart.patch
@@ -1,4 +1,4 @@
1From c239fee2fa5aae0a6e3086330562241bd9330bca Mon Sep 17 00:00:00 2001 1From 49f2be4bc5297798aa3cd54ba1417804c14f8d38 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@ubuntu.com> 2From: Colin Watson <cjwatson@ubuntu.com>
3Date: Sun, 9 Feb 2014 16:10:12 +0000 3Date: Sun, 9 Feb 2014 16:10:12 +0000
4Subject: Refer to ssh's Upstart job as well as its init script 4Subject: Refer to ssh's Upstart job as well as its init script
@@ -12,7 +12,7 @@ Patch-Name: doc-upstart.patch
12 1 file changed, 4 insertions(+), 1 deletion(-) 12 1 file changed, 4 insertions(+), 1 deletion(-)
13 13
14diff --git a/sshd.8 b/sshd.8 14diff --git a/sshd.8 b/sshd.8
15index 2f4d4f3..42f1520 100644 15index 42ba596..17b917c 100644
16--- a/sshd.8 16--- a/sshd.8
17+++ b/sshd.8 17+++ b/sshd.8
18@@ -67,7 +67,10 @@ over an insecure network. 18@@ -67,7 +67,10 @@ over an insecure network.
diff --git a/debian/patches/gnome-ssh-askpass2-icon.patch b/debian/patches/gnome-ssh-askpass2-icon.patch
index 609706831..91fb20bb3 100644
--- a/debian/patches/gnome-ssh-askpass2-icon.patch
+++ b/debian/patches/gnome-ssh-askpass2-icon.patch
@@ -1,4 +1,4 @@
1From 9a1c2558e40d504443830442c42f5a6e46f31ed0 Mon Sep 17 00:00:00 2001 1From 820ff9bbc530c4f736c883caf4a773fa397ffacc Mon Sep 17 00:00:00 2001
2From: Vincent Untz <vuntz@ubuntu.com> 2From: Vincent Untz <vuntz@ubuntu.com>
3Date: Sun, 9 Feb 2014 16:10:16 +0000 3Date: Sun, 9 Feb 2014 16:10:16 +0000
4Subject: Give the ssh-askpass-gnome window a default icon 4Subject: Give the ssh-askpass-gnome window a default icon
diff --git a/debian/patches/gssapi.patch b/debian/patches/gssapi.patch
index 29a689b0d..3d6dfac9a 100644
--- a/debian/patches/gssapi.patch
+++ b/debian/patches/gssapi.patch
@@ -1,4 +1,4 @@
1From 70b18066d3921277861e98902c9cf41a10ac6898 Mon Sep 17 00:00:00 2001 1From 233e78235070e871b658c8f289e600bd52a99711 Mon Sep 17 00:00:00 2001
2From: Simon Wilkinson <simon@sxw.org.uk> 2From: Simon Wilkinson <simon@sxw.org.uk>
3Date: Sun, 9 Feb 2014 16:09:48 +0000 3Date: Sun, 9 Feb 2014 16:09:48 +0000
4Subject: GSSAPI key exchange support 4Subject: GSSAPI key exchange support
@@ -17,7 +17,7 @@ have it merged into the main openssh package rather than having separate
17security history. 17security history.
18 18
19Bug: https://bugzilla.mindrot.org/show_bug.cgi?id=1242 19Bug: https://bugzilla.mindrot.org/show_bug.cgi?id=1242
20Last-Updated: 2015-09-17 20Last-Updated: 2015-11-29
21 21
22Patch-Name: gssapi.patch 22Patch-Name: gssapi.patch
23--- 23---
@@ -359,10 +359,10 @@ index 7177962..3f49bdc 100644
359 #endif 359 #endif
360 &method_passwd, 360 &method_passwd,
361diff --git a/clientloop.c b/clientloop.c 361diff --git a/clientloop.c b/clientloop.c
362index dc0e557..77d5498 100644 362index 87ceb3d..fba1b54 100644
363--- a/clientloop.c 363--- a/clientloop.c
364+++ b/clientloop.c 364+++ b/clientloop.c
365@@ -114,6 +114,10 @@ 365@@ -115,6 +115,10 @@
366 #include "ssherr.h" 366 #include "ssherr.h"
367 #include "hostfile.h" 367 #include "hostfile.h"
368 368
@@ -373,7 +373,7 @@ index dc0e557..77d5498 100644
373 /* import options */ 373 /* import options */
374 extern Options options; 374 extern Options options;
375 375
376@@ -1609,6 +1613,15 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) 376@@ -1610,6 +1614,15 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
377 /* Do channel operations unless rekeying in progress. */ 377 /* Do channel operations unless rekeying in progress. */
378 if (!rekeying) { 378 if (!rekeying) {
379 channel_after_select(readset, writeset); 379 channel_after_select(readset, writeset);
@@ -390,7 +390,7 @@ index dc0e557..77d5498 100644
390 debug("need rekeying"); 390 debug("need rekeying");
391 active_state->kex->done = 0; 391 active_state->kex->done = 0;
392diff --git a/config.h.in b/config.h.in 392diff --git a/config.h.in b/config.h.in
393index 7e7e38e..6c7de98 100644 393index 7500df5..97accd8 100644
394--- a/config.h.in 394--- a/config.h.in
395+++ b/config.h.in 395+++ b/config.h.in
396@@ -1623,6 +1623,9 @@ 396@@ -1623,6 +1623,9 @@
@@ -414,7 +414,7 @@ index 7e7e38e..6c7de98 100644
414 #undef USE_SOLARIS_PROCESS_CONTRACTS 414 #undef USE_SOLARIS_PROCESS_CONTRACTS
415 415
416diff --git a/configure.ac b/configure.ac 416diff --git a/configure.ac b/configure.ac
417index bb0095f..df21693 100644 417index 9b05c30..7a25603 100644
418--- a/configure.ac 418--- a/configure.ac
419+++ b/configure.ac 419+++ b/configure.ac
420@@ -625,6 +625,30 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) 420@@ -625,6 +625,30 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
@@ -1197,7 +1197,7 @@ index 53993d6..2f6baf7 100644
1197 1197
1198 #endif 1198 #endif
1199diff --git a/kex.c b/kex.c 1199diff --git a/kex.c b/kex.c
1200index dbc55ef..4d8e6f5 100644 1200index 5100c66..39a6f98 100644
1201--- a/kex.c 1201--- a/kex.c
1202+++ b/kex.c 1202+++ b/kex.c
1203@@ -55,6 +55,10 @@ 1203@@ -55,6 +55,10 @@
@@ -1238,7 +1238,7 @@ index dbc55ef..4d8e6f5 100644
1238 } 1238 }
1239 1239
1240diff --git a/kex.h b/kex.h 1240diff --git a/kex.h b/kex.h
1241index f70b81f..7194b14 100644 1241index d71b532..ee46815 100644
1242--- a/kex.h 1242--- a/kex.h
1243+++ b/kex.h 1243+++ b/kex.h
1244@@ -93,6 +93,9 @@ enum kex_exchange { 1244@@ -93,6 +93,9 @@ enum kex_exchange {
@@ -1263,8 +1263,8 @@ index f70b81f..7194b14 100644
1263+#endif 1263+#endif
1264 char *client_version_string; 1264 char *client_version_string;
1265 char *server_version_string; 1265 char *server_version_string;
1266 int (*verify_host_key)(struct sshkey *, struct ssh *); 1266 char *failed_choice;
1267@@ -184,6 +193,11 @@ int kexecdh_server(struct ssh *); 1267@@ -187,6 +196,11 @@ int kexecdh_server(struct ssh *);
1268 int kexc25519_client(struct ssh *); 1268 int kexc25519_client(struct ssh *);
1269 int kexc25519_server(struct ssh *); 1269 int kexc25519_server(struct ssh *);
1270 1270
@@ -1920,7 +1920,7 @@ index 0000000..0847469
1920+} 1920+}
1921+#endif /* GSSAPI */ 1921+#endif /* GSSAPI */
1922diff --git a/monitor.c b/monitor.c 1922diff --git a/monitor.c b/monitor.c
1923index b410965..bdc2972 100644 1923index a914209..2658aaa 100644
1924--- a/monitor.c 1924--- a/monitor.c
1925+++ b/monitor.c 1925+++ b/monitor.c
1926@@ -157,6 +157,8 @@ int mm_answer_gss_setup_ctx(int, Buffer *); 1926@@ -157,6 +157,8 @@ int mm_answer_gss_setup_ctx(int, Buffer *);
@@ -2127,10 +2127,10 @@ index 93b8b66..bc50ade 100644
2127 2127
2128 struct mm_master; 2128 struct mm_master;
2129diff --git a/monitor_wrap.c b/monitor_wrap.c 2129diff --git a/monitor_wrap.c b/monitor_wrap.c
2130index e6217b3..71e7c08 100644 2130index eac421b..81ceddb 100644
2131--- a/monitor_wrap.c 2131--- a/monitor_wrap.c
2132+++ b/monitor_wrap.c 2132+++ b/monitor_wrap.c
2133@@ -1069,7 +1069,7 @@ mm_ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic) 2133@@ -1068,7 +1068,7 @@ mm_ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic)
2134 } 2134 }
2135 2135
2136 int 2136 int
@@ -2139,7 +2139,7 @@ index e6217b3..71e7c08 100644
2139 { 2139 {
2140 Buffer m; 2140 Buffer m;
2141 int authenticated = 0; 2141 int authenticated = 0;
2142@@ -1086,5 +1086,50 @@ mm_ssh_gssapi_userok(char *user) 2142@@ -1085,5 +1085,50 @@ mm_ssh_gssapi_userok(char *user)
2143 debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); 2143 debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not ");
2144 return (authenticated); 2144 return (authenticated);
2145 } 2145 }
@@ -2207,7 +2207,7 @@ index de4a08f..9758290 100644
2207 2207
2208 #ifdef USE_PAM 2208 #ifdef USE_PAM
2209diff --git a/readconf.c b/readconf.c 2209diff --git a/readconf.c b/readconf.c
2210index db7d0bb..68dac76 100644 2210index 1d03bdf..43b7570 100644
2211--- a/readconf.c 2211--- a/readconf.c
2212+++ b/readconf.c 2212+++ b/readconf.c
2213@@ -147,6 +147,8 @@ typedef enum { 2213@@ -147,6 +147,8 @@ typedef enum {
@@ -2219,7 +2219,7 @@ index db7d0bb..68dac76 100644
2219 oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, 2219 oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly,
2220 oSendEnv, oControlPath, oControlMaster, oControlPersist, 2220 oSendEnv, oControlPath, oControlMaster, oControlPersist,
2221 oHashKnownHosts, 2221 oHashKnownHosts,
2222@@ -191,10 +193,19 @@ static struct { 2222@@ -192,10 +194,19 @@ static struct {
2223 { "afstokenpassing", oUnsupported }, 2223 { "afstokenpassing", oUnsupported },
2224 #if defined(GSSAPI) 2224 #if defined(GSSAPI)
2225 { "gssapiauthentication", oGssAuthentication }, 2225 { "gssapiauthentication", oGssAuthentication },
@@ -2239,7 +2239,7 @@ index db7d0bb..68dac76 100644
2239 #endif 2239 #endif
2240 { "fallbacktorsh", oDeprecated }, 2240 { "fallbacktorsh", oDeprecated },
2241 { "usersh", oDeprecated }, 2241 { "usersh", oDeprecated },
2242@@ -892,10 +903,30 @@ parse_time: 2242@@ -894,10 +905,30 @@ parse_time:
2243 intptr = &options->gss_authentication; 2243 intptr = &options->gss_authentication;
2244 goto parse_flag; 2244 goto parse_flag;
2245 2245
@@ -2283,7 +2283,7 @@ index db7d0bb..68dac76 100644
2283 options->password_authentication = -1; 2283 options->password_authentication = -1;
2284 options->kbd_interactive_authentication = -1; 2284 options->kbd_interactive_authentication = -1;
2285 options->kbd_interactive_devices = NULL; 2285 options->kbd_interactive_devices = NULL;
2286@@ -1728,8 +1764,14 @@ fill_default_options(Options * options) 2286@@ -1729,8 +1765,14 @@ fill_default_options(Options * options)
2287 options->challenge_response_authentication = 1; 2287 options->challenge_response_authentication = 1;
2288 if (options->gss_authentication == -1) 2288 if (options->gss_authentication == -1)
2289 options->gss_authentication = 0; 2289 options->gss_authentication = 0;
@@ -2299,7 +2299,7 @@ index db7d0bb..68dac76 100644
2299 options->password_authentication = 1; 2299 options->password_authentication = 1;
2300 if (options->kbd_interactive_authentication == -1) 2300 if (options->kbd_interactive_authentication == -1)
2301diff --git a/readconf.h b/readconf.h 2301diff --git a/readconf.h b/readconf.h
2302index 576b9e3..ef39c4c 100644 2302index bb2d552..e7e80c3 100644
2303--- a/readconf.h 2303--- a/readconf.h
2304+++ b/readconf.h 2304+++ b/readconf.h
2305@@ -45,7 +45,12 @@ typedef struct { 2305@@ -45,7 +45,12 @@ typedef struct {
@@ -2316,10 +2316,10 @@ index 576b9e3..ef39c4c 100644
2316 * authentication. */ 2316 * authentication. */
2317 int kbd_interactive_authentication; /* Try keyboard-interactive auth. */ 2317 int kbd_interactive_authentication; /* Try keyboard-interactive auth. */
2318diff --git a/servconf.c b/servconf.c 2318diff --git a/servconf.c b/servconf.c
2319index df93fc4..2f7f41e 100644 2319index 6c7a91e..cfe7029 100644
2320--- a/servconf.c 2320--- a/servconf.c
2321+++ b/servconf.c 2321+++ b/servconf.c
2322@@ -115,8 +115,10 @@ initialize_server_options(ServerOptions *options) 2322@@ -117,8 +117,10 @@ initialize_server_options(ServerOptions *options)
2323 options->kerberos_ticket_cleanup = -1; 2323 options->kerberos_ticket_cleanup = -1;
2324 options->kerberos_get_afs_token = -1; 2324 options->kerberos_get_afs_token = -1;
2325 options->gss_authentication=-1; 2325 options->gss_authentication=-1;
@@ -2346,15 +2346,15 @@ index df93fc4..2f7f41e 100644
2346 if (options->password_authentication == -1) 2346 if (options->password_authentication == -1)
2347 options->password_authentication = 1; 2347 options->password_authentication = 1;
2348 if (options->kbd_interactive_authentication == -1) 2348 if (options->kbd_interactive_authentication == -1)
2349@@ -401,6 +407,7 @@ typedef enum { 2349@@ -412,6 +418,7 @@ typedef enum {
2350 sHostbasedUsesNameFromPacketOnly, sHostbasedAcceptedKeyTypes, 2350 sHostKeyAlgorithms,
2351 sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, 2351 sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile,
2352 sGssAuthentication, sGssCleanupCreds, sGssStrictAcceptor, 2352 sGssAuthentication, sGssCleanupCreds, sGssStrictAcceptor,
2353+ sGssKeyEx, sGssStoreRekey, 2353+ sGssKeyEx, sGssStoreRekey,
2354 sAcceptEnv, sPermitTunnel, 2354 sAcceptEnv, sPermitTunnel,
2355 sMatch, sPermitOpen, sForceCommand, sChrootDirectory, 2355 sMatch, sPermitOpen, sForceCommand, sChrootDirectory,
2356 sUsePrivilegeSeparation, sAllowAgentForwarding, 2356 sUsePrivilegeSeparation, sAllowAgentForwarding,
2357@@ -473,12 +480,20 @@ static struct { 2357@@ -485,12 +492,20 @@ static struct {
2358 #ifdef GSSAPI 2358 #ifdef GSSAPI
2359 { "gssapiauthentication", sGssAuthentication, SSHCFG_ALL }, 2359 { "gssapiauthentication", sGssAuthentication, SSHCFG_ALL },
2360 { "gssapicleanupcredentials", sGssCleanupCreds, SSHCFG_GLOBAL }, 2360 { "gssapicleanupcredentials", sGssCleanupCreds, SSHCFG_GLOBAL },
@@ -2375,7 +2375,7 @@ index df93fc4..2f7f41e 100644
2375 { "passwordauthentication", sPasswordAuthentication, SSHCFG_ALL }, 2375 { "passwordauthentication", sPasswordAuthentication, SSHCFG_ALL },
2376 { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL }, 2376 { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL },
2377 { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, 2377 { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL },
2378@@ -1214,6 +1229,10 @@ process_server_config_line(ServerOptions *options, char *line, 2378@@ -1231,6 +1246,10 @@ process_server_config_line(ServerOptions *options, char *line,
2379 intptr = &options->gss_authentication; 2379 intptr = &options->gss_authentication;
2380 goto parse_flag; 2380 goto parse_flag;
2381 2381
@@ -2386,7 +2386,7 @@ index df93fc4..2f7f41e 100644
2386 case sGssCleanupCreds: 2386 case sGssCleanupCreds:
2387 intptr = &options->gss_cleanup_creds; 2387 intptr = &options->gss_cleanup_creds;
2388 goto parse_flag; 2388 goto parse_flag;
2389@@ -1222,6 +1241,10 @@ process_server_config_line(ServerOptions *options, char *line, 2389@@ -1239,6 +1258,10 @@ process_server_config_line(ServerOptions *options, char *line,
2390 intptr = &options->gss_strict_acceptor; 2390 intptr = &options->gss_strict_acceptor;
2391 goto parse_flag; 2391 goto parse_flag;
2392 2392
@@ -2397,7 +2397,7 @@ index df93fc4..2f7f41e 100644
2397 case sPasswordAuthentication: 2397 case sPasswordAuthentication:
2398 intptr = &options->password_authentication; 2398 intptr = &options->password_authentication;
2399 goto parse_flag; 2399 goto parse_flag;
2400@@ -2229,7 +2252,10 @@ dump_config(ServerOptions *o) 2400@@ -2246,7 +2269,10 @@ dump_config(ServerOptions *o)
2401 #endif 2401 #endif
2402 #ifdef GSSAPI 2402 #ifdef GSSAPI
2403 dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); 2403 dump_cfg_fmtint(sGssAuthentication, o->gss_authentication);
@@ -2409,10 +2409,10 @@ index df93fc4..2f7f41e 100644
2409 dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication); 2409 dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication);
2410 dump_cfg_fmtint(sKbdInteractiveAuthentication, 2410 dump_cfg_fmtint(sKbdInteractiveAuthentication,
2411diff --git a/servconf.h b/servconf.h 2411diff --git a/servconf.h b/servconf.h
2412index 606d80c..b99b270 100644 2412index f4137af..778ba17 100644
2413--- a/servconf.h 2413--- a/servconf.h
2414+++ b/servconf.h 2414+++ b/servconf.h
2415@@ -117,8 +117,10 @@ typedef struct { 2415@@ -118,8 +118,10 @@ typedef struct {
2416 int kerberos_get_afs_token; /* If true, try to get AFS token if 2416 int kerberos_get_afs_token; /* If true, try to get AFS token if
2417 * authenticated with Kerberos. */ 2417 * authenticated with Kerberos. */
2418 int gss_authentication; /* If true, permit GSSAPI authentication */ 2418 int gss_authentication; /* If true, permit GSSAPI authentication */
@@ -2540,10 +2540,10 @@ index 03a228f..228e5ab 100644
2540 # CheckHostIP yes 2540 # CheckHostIP yes
2541 # AddressFamily any 2541 # AddressFamily any
2542diff --git a/ssh_config.5 b/ssh_config.5 2542diff --git a/ssh_config.5 b/ssh_config.5
2543index 268a627..59ce400 100644 2543index 5b0975f..b2dc49b 100644
2544--- a/ssh_config.5 2544--- a/ssh_config.5
2545+++ b/ssh_config.5 2545+++ b/ssh_config.5
2546@@ -744,11 +744,45 @@ Specifies whether user authentication based on GSSAPI is allowed. 2546@@ -749,11 +749,45 @@ Specifies whether user authentication based on GSSAPI is allowed.
2547 The default is 2547 The default is
2548 .Dq no . 2548 .Dq no .
2549 Note that this option applies to protocol version 2 only. 2549 Note that this option applies to protocol version 2 only.
@@ -2591,7 +2591,7 @@ index 268a627..59ce400 100644
2591 Indicates that 2591 Indicates that
2592 .Xr ssh 1 2592 .Xr ssh 1
2593diff --git a/sshconnect2.c b/sshconnect2.c 2593diff --git a/sshconnect2.c b/sshconnect2.c
2594index fcaed6b..44c89e6 100644 2594index 7751031..e2ea826 100644
2595--- a/sshconnect2.c 2595--- a/sshconnect2.c
2596+++ b/sshconnect2.c 2596+++ b/sshconnect2.c
2597@@ -160,9 +160,34 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) 2597@@ -160,9 +160,34 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port)
@@ -2626,12 +2626,12 @@ index fcaed6b..44c89e6 100644
2626+ } 2626+ }
2627+#endif 2627+#endif
2628+ 2628+
2629 if (options.ciphers == (char *)-1) {
2630 logit("No valid ciphers for protocol version 2 given, using defaults.");
2631 options.ciphers = NULL;
2632@@ -200,6 +225,17 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port)
2633 myproposal[PROPOSAL_KEX_ALGS] = compat_kex_proposal( 2629 myproposal[PROPOSAL_KEX_ALGS] = compat_kex_proposal(
2634 myproposal[PROPOSAL_KEX_ALGS]); 2630 options.kex_algorithms);
2631 myproposal[PROPOSAL_ENC_ALGS_CTOS] =
2632@@ -193,6 +218,17 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port)
2633 order_hostkeyalgs(host, hostaddr, port));
2634 }
2635 2635
2636+#ifdef GSSAPI 2636+#ifdef GSSAPI
2637+ /* If we've got GSSAPI algorithms, then we also support the 2637+ /* If we've got GSSAPI algorithms, then we also support the
@@ -2647,7 +2647,7 @@ index fcaed6b..44c89e6 100644
2647 if (options.rekey_limit || options.rekey_interval) 2647 if (options.rekey_limit || options.rekey_interval)
2648 packet_set_rekey_limits((u_int32_t)options.rekey_limit, 2648 packet_set_rekey_limits((u_int32_t)options.rekey_limit,
2649 (time_t)options.rekey_interval); 2649 (time_t)options.rekey_interval);
2650@@ -218,10 +254,30 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) 2650@@ -211,10 +247,30 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port)
2651 # endif 2651 # endif
2652 #endif 2652 #endif
2653 kex->kex[KEX_C25519_SHA256] = kexc25519_client; 2653 kex->kex[KEX_C25519_SHA256] = kexc25519_client;
@@ -2678,7 +2678,7 @@ index fcaed6b..44c89e6 100644
2678 dispatch_run(DISPATCH_BLOCK, &kex->done, active_state); 2678 dispatch_run(DISPATCH_BLOCK, &kex->done, active_state);
2679 2679
2680 if (options.use_roaming && !kex->roaming) { 2680 if (options.use_roaming && !kex->roaming) {
2681@@ -313,6 +369,7 @@ int input_gssapi_token(int type, u_int32_t, void *); 2681@@ -306,6 +362,7 @@ int input_gssapi_token(int type, u_int32_t, void *);
2682 int input_gssapi_hash(int type, u_int32_t, void *); 2682 int input_gssapi_hash(int type, u_int32_t, void *);
2683 int input_gssapi_error(int, u_int32_t, void *); 2683 int input_gssapi_error(int, u_int32_t, void *);
2684 int input_gssapi_errtok(int, u_int32_t, void *); 2684 int input_gssapi_errtok(int, u_int32_t, void *);
@@ -2686,7 +2686,7 @@ index fcaed6b..44c89e6 100644
2686 #endif 2686 #endif
2687 2687
2688 void userauth(Authctxt *, char *); 2688 void userauth(Authctxt *, char *);
2689@@ -328,6 +385,11 @@ static char *authmethods_get(void); 2689@@ -321,6 +378,11 @@ static char *authmethods_get(void);
2690 2690
2691 Authmethod authmethods[] = { 2691 Authmethod authmethods[] = {
2692 #ifdef GSSAPI 2692 #ifdef GSSAPI
@@ -2698,7 +2698,7 @@ index fcaed6b..44c89e6 100644
2698 {"gssapi-with-mic", 2698 {"gssapi-with-mic",
2699 userauth_gssapi, 2699 userauth_gssapi,
2700 NULL, 2700 NULL,
2701@@ -634,19 +696,31 @@ userauth_gssapi(Authctxt *authctxt) 2701@@ -627,19 +689,31 @@ userauth_gssapi(Authctxt *authctxt)
2702 static u_int mech = 0; 2702 static u_int mech = 0;
2703 OM_uint32 min; 2703 OM_uint32 min;
2704 int ok = 0; 2704 int ok = 0;
@@ -2732,7 +2732,7 @@ index fcaed6b..44c89e6 100644
2732 ok = 1; /* Mechanism works */ 2732 ok = 1; /* Mechanism works */
2733 } else { 2733 } else {
2734 mech++; 2734 mech++;
2735@@ -743,8 +817,8 @@ input_gssapi_response(int type, u_int32_t plen, void *ctxt) 2735@@ -736,8 +810,8 @@ input_gssapi_response(int type, u_int32_t plen, void *ctxt)
2736 { 2736 {
2737 Authctxt *authctxt = ctxt; 2737 Authctxt *authctxt = ctxt;
2738 Gssctxt *gssctxt; 2738 Gssctxt *gssctxt;
@@ -2743,7 +2743,7 @@ index fcaed6b..44c89e6 100644
2743 2743
2744 if (authctxt == NULL) 2744 if (authctxt == NULL)
2745 fatal("input_gssapi_response: no authentication context"); 2745 fatal("input_gssapi_response: no authentication context");
2746@@ -857,6 +931,48 @@ input_gssapi_error(int type, u_int32_t plen, void *ctxt) 2746@@ -850,6 +924,48 @@ input_gssapi_error(int type, u_int32_t plen, void *ctxt)
2747 free(lang); 2747 free(lang);
2748 return 0; 2748 return 0;
2749 } 2749 }
@@ -2793,10 +2793,10 @@ index fcaed6b..44c89e6 100644
2793 2793
2794 int 2794 int
2795diff --git a/sshd.c b/sshd.c 2795diff --git a/sshd.c b/sshd.c
2796index 6f8c6f2..6b85e6c 100644 2796index c7dd8cb..32adb1f 100644
2797--- a/sshd.c 2797--- a/sshd.c
2798+++ b/sshd.c 2798+++ b/sshd.c
2799@@ -125,6 +125,10 @@ 2799@@ -126,6 +126,10 @@
2800 #include "version.h" 2800 #include "version.h"
2801 #include "ssherr.h" 2801 #include "ssherr.h"
2802 2802
@@ -2807,7 +2807,7 @@ index 6f8c6f2..6b85e6c 100644
2807 #ifndef O_NOCTTY 2807 #ifndef O_NOCTTY
2808 #define O_NOCTTY 0 2808 #define O_NOCTTY 0
2809 #endif 2809 #endif
2810@@ -1823,10 +1827,13 @@ main(int ac, char **av) 2810@@ -1827,10 +1831,13 @@ main(int ac, char **av)
2811 logit("Disabling protocol version 1. Could not load host key"); 2811 logit("Disabling protocol version 1. Could not load host key");
2812 options.protocol &= ~SSH_PROTO_1; 2812 options.protocol &= ~SSH_PROTO_1;
2813 } 2813 }
@@ -2821,7 +2821,7 @@ index 6f8c6f2..6b85e6c 100644
2821 if (!(options.protocol & (SSH_PROTO_1|SSH_PROTO_2))) { 2821 if (!(options.protocol & (SSH_PROTO_1|SSH_PROTO_2))) {
2822 logit("sshd: no hostkeys available -- exiting."); 2822 logit("sshd: no hostkeys available -- exiting.");
2823 exit(1); 2823 exit(1);
2824@@ -2141,6 +2148,60 @@ main(int ac, char **av) 2824@@ -2145,6 +2152,60 @@ main(int ac, char **av)
2825 remote_ip, remote_port, laddr, get_local_port()); 2825 remote_ip, remote_port, laddr, get_local_port());
2826 free(laddr); 2826 free(laddr);
2827 2827
@@ -2882,7 +2882,7 @@ index 6f8c6f2..6b85e6c 100644
2882 /* 2882 /*
2883 * We don't want to listen forever unless the other side 2883 * We don't want to listen forever unless the other side
2884 * successfully authenticates itself. So we set up an alarm which is 2884 * successfully authenticates itself. So we set up an alarm which is
2885@@ -2570,6 +2631,48 @@ do_ssh2_kex(void) 2885@@ -2563,6 +2624,48 @@ do_ssh2_kex(void)
2886 myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = compat_pkalg_proposal( 2886 myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = compat_pkalg_proposal(
2887 list_hostkey_types()); 2887 list_hostkey_types());
2888 2888
@@ -2931,7 +2931,7 @@ index 6f8c6f2..6b85e6c 100644
2931 /* start key exchange */ 2931 /* start key exchange */
2932 if ((r = kex_setup(active_state, myproposal)) != 0) 2932 if ((r = kex_setup(active_state, myproposal)) != 0)
2933 fatal("kex_setup: %s", ssh_err(r)); 2933 fatal("kex_setup: %s", ssh_err(r));
2934@@ -2584,6 +2687,13 @@ do_ssh2_kex(void) 2934@@ -2577,6 +2680,13 @@ do_ssh2_kex(void)
2935 # endif 2935 # endif
2936 #endif 2936 #endif
2937 kex->kex[KEX_C25519_SHA256] = kexc25519_server; 2937 kex->kex[KEX_C25519_SHA256] = kexc25519_server;
@@ -2946,7 +2946,7 @@ index 6f8c6f2..6b85e6c 100644
2946 kex->client_version_string=client_version_string; 2946 kex->client_version_string=client_version_string;
2947 kex->server_version_string=server_version_string; 2947 kex->server_version_string=server_version_string;
2948diff --git a/sshd_config b/sshd_config 2948diff --git a/sshd_config b/sshd_config
2949index cf7d8e1..1dfd0f1 100644 2949index 4d77f05..64786c9 100644
2950--- a/sshd_config 2950--- a/sshd_config
2951+++ b/sshd_config 2951+++ b/sshd_config
2952@@ -84,6 +84,8 @@ AuthorizedKeysFile .ssh/authorized_keys 2952@@ -84,6 +84,8 @@ AuthorizedKeysFile .ssh/authorized_keys
@@ -2959,10 +2959,10 @@ index cf7d8e1..1dfd0f1 100644
2959 # Set this to 'yes' to enable PAM authentication, account processing, 2959 # Set this to 'yes' to enable PAM authentication, account processing,
2960 # and session processing. If this is enabled, PAM authentication will 2960 # and session processing. If this is enabled, PAM authentication will
2961diff --git a/sshd_config.5 b/sshd_config.5 2961diff --git a/sshd_config.5 b/sshd_config.5
2962index 5ab4318..68424f1 100644 2962index 58e277f..712f620 100644
2963--- a/sshd_config.5 2963--- a/sshd_config.5
2964+++ b/sshd_config.5 2964+++ b/sshd_config.5
2965@@ -616,6 +616,12 @@ Specifies whether user authentication based on GSSAPI is allowed. 2965@@ -621,6 +621,12 @@ Specifies whether user authentication based on GSSAPI is allowed.
2966 The default is 2966 The default is
2967 .Dq no . 2967 .Dq no .
2968 Note that this option applies to protocol version 2 only. 2968 Note that this option applies to protocol version 2 only.
@@ -2975,7 +2975,7 @@ index 5ab4318..68424f1 100644
2975 .It Cm GSSAPICleanupCredentials 2975 .It Cm GSSAPICleanupCredentials
2976 Specifies whether to automatically destroy the user's credentials cache 2976 Specifies whether to automatically destroy the user's credentials cache
2977 on logout. 2977 on logout.
2978@@ -637,6 +643,11 @@ machine's default store. 2978@@ -642,6 +648,11 @@ machine's default store.
2979 This facility is provided to assist with operation on multi homed machines. 2979 This facility is provided to assist with operation on multi homed machines.
2980 The default is 2980 The default is
2981 .Dq yes . 2981 .Dq yes .
@@ -2988,18 +2988,18 @@ index 5ab4318..68424f1 100644
2988 Specifies the key types that will be accepted for hostbased authentication 2988 Specifies the key types that will be accepted for hostbased authentication
2989 as a comma-separated pattern list. 2989 as a comma-separated pattern list.
2990diff --git a/sshkey.c b/sshkey.c 2990diff --git a/sshkey.c b/sshkey.c
2991index cfe5980..2c87d80 100644 2991index dbb16e2..14b6dc3 100644
2992--- a/sshkey.c 2992--- a/sshkey.c
2993+++ b/sshkey.c 2993+++ b/sshkey.c
2994@@ -116,6 +116,7 @@ static const struct keytype keytypes[] = { 2994@@ -112,6 +112,7 @@ static const struct keytype keytypes[] = {
2995 { "ssh-dss-cert-v00@openssh.com", "DSA-CERT-V00", 2995 # endif /* OPENSSL_HAS_NISTP521 */
2996 KEY_DSA_CERT_V00, 0, 1 }, 2996 # endif /* OPENSSL_HAS_ECC */
2997 #endif /* WITH_OPENSSL */ 2997 #endif /* WITH_OPENSSL */
2998+ { "null", "null", KEY_NULL, 0, 0 }, 2998+ { "null", "null", KEY_NULL, 0, 0 },
2999 { NULL, NULL, -1, -1, 0 } 2999 { NULL, NULL, -1, -1, 0 }
3000 }; 3000 };
3001 3001
3002@@ -204,7 +205,7 @@ key_alg_list(int certs_only, int plain_only) 3002@@ -200,7 +201,7 @@ key_alg_list(int certs_only, int plain_only)
3003 const struct keytype *kt; 3003 const struct keytype *kt;
3004 3004
3005 for (kt = keytypes; kt->type != -1; kt++) { 3005 for (kt = keytypes; kt->type != -1; kt++) {
@@ -3009,13 +3009,13 @@ index cfe5980..2c87d80 100644
3009 if ((certs_only && !kt->cert) || (plain_only && kt->cert)) 3009 if ((certs_only && !kt->cert) || (plain_only && kt->cert))
3010 continue; 3010 continue;
3011diff --git a/sshkey.h b/sshkey.h 3011diff --git a/sshkey.h b/sshkey.h
3012index cdac0e2..b010b8e 100644 3012index c8d3cdd..5cf4e5d 100644
3013--- a/sshkey.h 3013--- a/sshkey.h
3014+++ b/sshkey.h 3014+++ b/sshkey.h
3015@@ -64,6 +64,7 @@ enum sshkey_types { 3015@@ -62,6 +62,7 @@ enum sshkey_types {
3016 KEY_DSA_CERT,
3017 KEY_ECDSA_CERT,
3016 KEY_ED25519_CERT, 3018 KEY_ED25519_CERT,
3017 KEY_RSA_CERT_V00,
3018 KEY_DSA_CERT_V00,
3019+ KEY_NULL, 3019+ KEY_NULL,
3020 KEY_UNSPEC 3020 KEY_UNSPEC
3021 }; 3021 };
diff --git a/debian/patches/helpful-wait-terminate.patch b/debian/patches/helpful-wait-terminate.patch
index 6a7f17b2f..504abe68d 100644
--- a/debian/patches/helpful-wait-terminate.patch
+++ b/debian/patches/helpful-wait-terminate.patch
@@ -1,4 +1,4 @@
1From cc53919ec39bb8a84127b7ba1f23acf3809dc2a0 Mon Sep 17 00:00:00 2001 1From 9fb8297943f1b331129f26606867c5dec2d05317 Mon Sep 17 00:00:00 2001
2From: Matthew Vernon <matthew@debian.org> 2From: Matthew Vernon <matthew@debian.org>
3Date: Sun, 9 Feb 2014 16:09:56 +0000 3Date: Sun, 9 Feb 2014 16:09:56 +0000
4Subject: Mention ~& when waiting for forwarded connections to terminate 4Subject: Mention ~& when waiting for forwarded connections to terminate
diff --git a/debian/patches/keepalive-extensions.patch b/debian/patches/keepalive-extensions.patch
index 3f425f225..9c6fdca0b 100644
--- a/debian/patches/keepalive-extensions.patch
+++ b/debian/patches/keepalive-extensions.patch
@@ -1,4 +1,4 @@
1From 302a74ce4e7eb60564410f482cb5778a3dec2e96 Mon Sep 17 00:00:00 2001 1From 25698ed1091d932244f94e7c802dce05c458749a Mon Sep 17 00:00:00 2001
2From: Richard Kettlewell <rjk@greenend.org.uk> 2From: Richard Kettlewell <rjk@greenend.org.uk>
3Date: Sun, 9 Feb 2014 16:09:52 +0000 3Date: Sun, 9 Feb 2014 16:09:52 +0000
4Subject: Various keepalive extensions 4Subject: Various keepalive extensions
@@ -16,7 +16,7 @@ keepalives.
16Author: Ian Jackson <ian@chiark.greenend.org.uk> 16Author: Ian Jackson <ian@chiark.greenend.org.uk>
17Author: Matthew Vernon <matthew@debian.org> 17Author: Matthew Vernon <matthew@debian.org>
18Author: Colin Watson <cjwatson@debian.org> 18Author: Colin Watson <cjwatson@debian.org>
19Last-Update: 2015-08-19 19Last-Update: 2015-11-29
20 20
21Patch-Name: keepalive-extensions.patch 21Patch-Name: keepalive-extensions.patch
22--- 22---
@@ -26,27 +26,27 @@ Patch-Name: keepalive-extensions.patch
26 3 files changed, 34 insertions(+), 4 deletions(-) 26 3 files changed, 34 insertions(+), 4 deletions(-)
27 27
28diff --git a/readconf.c b/readconf.c 28diff --git a/readconf.c b/readconf.c
29index 85eea48..5c5890c 100644 29index 522ad37..46c343f 100644
30--- a/readconf.c 30--- a/readconf.c
31+++ b/readconf.c 31+++ b/readconf.c
32@@ -159,6 +159,7 @@ typedef enum { 32@@ -160,6 +160,7 @@ typedef enum {
33 oCanonicalizeFallbackLocal, oCanonicalizePermittedCNAMEs,
34 oStreamLocalBindMask, oStreamLocalBindUnlink, oRevokedHostKeys, 33 oStreamLocalBindMask, oStreamLocalBindUnlink, oRevokedHostKeys,
35 oFingerprintHash, oUpdateHostkeys, oHostbasedKeyTypes, 34 oFingerprintHash, oUpdateHostkeys, oHostbasedKeyTypes,
35 oPubkeyAcceptedKeyTypes,
36+ oProtocolKeepAlives, oSetupTimeOut, 36+ oProtocolKeepAlives, oSetupTimeOut,
37 oIgnoredUnknownOption, oDeprecated, oUnsupported 37 oIgnoredUnknownOption, oDeprecated, oUnsupported
38 } OpCodes; 38 } OpCodes;
39 39
40@@ -288,6 +289,8 @@ static struct { 40@@ -290,6 +291,8 @@ static struct {
41 { "updatehostkeys", oUpdateHostkeys },
42 { "hostbasedkeytypes", oHostbasedKeyTypes }, 41 { "hostbasedkeytypes", oHostbasedKeyTypes },
42 { "pubkeyacceptedkeytypes", oPubkeyAcceptedKeyTypes },
43 { "ignoreunknown", oIgnoreUnknown }, 43 { "ignoreunknown", oIgnoreUnknown },
44+ { "protocolkeepalives", oProtocolKeepAlives }, 44+ { "protocolkeepalives", oProtocolKeepAlives },
45+ { "setuptimeout", oSetupTimeOut }, 45+ { "setuptimeout", oSetupTimeOut },
46 46
47 { NULL, oBadOption } 47 { NULL, oBadOption }
48 }; 48 };
49@@ -1299,6 +1302,8 @@ parse_int: 49@@ -1304,6 +1307,8 @@ parse_keytypes:
50 goto parse_flag; 50 goto parse_flag;
51 51
52 case oServerAliveInterval: 52 case oServerAliveInterval:
@@ -55,7 +55,7 @@ index 85eea48..5c5890c 100644
55 intptr = &options->server_alive_interval; 55 intptr = &options->server_alive_interval;
56 goto parse_time; 56 goto parse_time;
57 57
58@@ -1858,8 +1863,13 @@ fill_default_options(Options * options) 58@@ -1856,8 +1861,13 @@ fill_default_options(Options * options)
59 options->rekey_interval = 0; 59 options->rekey_interval = 0;
60 if (options->verify_host_key_dns == -1) 60 if (options->verify_host_key_dns == -1)
61 options->verify_host_key_dns = 0; 61 options->verify_host_key_dns = 0;
@@ -72,7 +72,7 @@ index 85eea48..5c5890c 100644
72 options->server_alive_count_max = 3; 72 options->server_alive_count_max = 3;
73 if (options->control_master == -1) 73 if (options->control_master == -1)
74diff --git a/ssh_config.5 b/ssh_config.5 74diff --git a/ssh_config.5 b/ssh_config.5
75index e60a5b4..67e0dff 100644 75index 82dcf0c..f517159 100644
76--- a/ssh_config.5 76--- a/ssh_config.5
77+++ b/ssh_config.5 77+++ b/ssh_config.5
78@@ -233,8 +233,12 @@ Valid arguments are 78@@ -233,8 +233,12 @@ Valid arguments are
@@ -89,7 +89,7 @@ index e60a5b4..67e0dff 100644
89 The argument must be 89 The argument must be
90 .Dq yes 90 .Dq yes
91 or 91 or
92@@ -1427,8 +1431,15 @@ from the server, 92@@ -1479,8 +1483,15 @@ from the server,
93 will send a message through the encrypted 93 will send a message through the encrypted
94 channel to request a response from the server. 94 channel to request a response from the server.
95 The default 95 The default
@@ -106,7 +106,7 @@ index e60a5b4..67e0dff 100644
106 .It Cm StreamLocalBindMask 106 .It Cm StreamLocalBindMask
107 Sets the octal file creation mode mask 107 Sets the octal file creation mode mask
108 .Pq umask 108 .Pq umask
109@@ -1494,6 +1505,12 @@ Specifies whether the system should send TCP keepalive messages to the 109@@ -1546,6 +1557,12 @@ Specifies whether the system should send TCP keepalive messages to the
110 other side. 110 other side.
111 If they are sent, death of the connection or crash of one 111 If they are sent, death of the connection or crash of one
112 of the machines will be properly noticed. 112 of the machines will be properly noticed.
@@ -120,10 +120,10 @@ index e60a5b4..67e0dff 100644
120 connections will die if the route is down temporarily, and some people 120 connections will die if the route is down temporarily, and some people
121 find it annoying. 121 find it annoying.
122diff --git a/sshd_config.5 b/sshd_config.5 122diff --git a/sshd_config.5 b/sshd_config.5
123index 68424f1..1269bbd 100644 123index 712f620..154e87e 100644
124--- a/sshd_config.5 124--- a/sshd_config.5
125+++ b/sshd_config.5 125+++ b/sshd_config.5
126@@ -1443,6 +1443,9 @@ This avoids infinitely hanging sessions. 126@@ -1510,6 +1510,9 @@ This avoids infinitely hanging sessions.
127 .Pp 127 .Pp
128 To disable TCP keepalive messages, the value should be set to 128 To disable TCP keepalive messages, the value should be set to
129 .Dq no . 129 .Dq no .
diff --git a/debian/patches/lintian-symlink-pickiness.patch b/debian/patches/lintian-symlink-pickiness.patch
index 3f14a6470..7c288b452 100644
--- a/debian/patches/lintian-symlink-pickiness.patch
+++ b/debian/patches/lintian-symlink-pickiness.patch
@@ -1,4 +1,4 @@
1From 506df046bb56e8d10d95d8cb3912f1462b7c4695 Mon Sep 17 00:00:00 2001 1From 2b5cab64ee1a2c917bf1b076fb81709cc0ea97d9 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:08 +0000 3Date: Sun, 9 Feb 2014 16:10:08 +0000
4Subject: Fix picky lintian errors about slogin symlinks 4Subject: Fix picky lintian errors about slogin symlinks
diff --git a/debian/patches/mention-ssh-keygen-on-keychange.patch b/debian/patches/mention-ssh-keygen-on-keychange.patch
index d3da72de0..418a5d1b2 100644
--- a/debian/patches/mention-ssh-keygen-on-keychange.patch
+++ b/debian/patches/mention-ssh-keygen-on-keychange.patch
@@ -1,4 +1,4 @@
1From 7fed650902de773980b1de83cec3c4cf6bb282da Mon Sep 17 00:00:00 2001 1From 20ba3686f33c1dbb34583b8731582fdc7181a831 Mon Sep 17 00:00:00 2001
2From: Scott Moser <smoser@ubuntu.com> 2From: Scott Moser <smoser@ubuntu.com>
3Date: Sun, 9 Feb 2014 16:10:03 +0000 3Date: Sun, 9 Feb 2014 16:10:03 +0000
4Subject: Mention ssh-keygen in ssh fingerprint changed warning 4Subject: Mention ssh-keygen in ssh fingerprint changed warning
diff --git a/debian/patches/no-openssl-version-status.patch b/debian/patches/no-openssl-version-status.patch
index fd2686f65..6bc7618fd 100644
--- a/debian/patches/no-openssl-version-status.patch
+++ b/debian/patches/no-openssl-version-status.patch
@@ -1,4 +1,4 @@
1From 64a33173d97a03b4d53380206d166716df25591a Mon Sep 17 00:00:00 2001 1From 151c2cd6257c44a9ba51bf7af75bb7d2761cf492 Mon Sep 17 00:00:00 2001
2From: Kurt Roeckx <kurt@roeckx.be> 2From: Kurt Roeckx <kurt@roeckx.be>
3Date: Sun, 9 Feb 2014 16:10:14 +0000 3Date: Sun, 9 Feb 2014 16:10:14 +0000
4Subject: Don't check the status field of the OpenSSL version 4Subject: Don't check the status field of the OpenSSL version
diff --git a/debian/patches/openbsd-docs.patch b/debian/patches/openbsd-docs.patch
index 8c681b9b0..389e8e73f 100644
--- a/debian/patches/openbsd-docs.patch
+++ b/debian/patches/openbsd-docs.patch
@@ -1,4 +1,4 @@
1From 96ecf95406b8599528e60ccfc5b32b543f74ddc4 Mon Sep 17 00:00:00 2001 1From d4a383b11e186c0db65b9a2779ad5f5889563ceb Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:09 +0000 3Date: Sun, 9 Feb 2014 16:10:09 +0000
4Subject: Adjust various OpenBSD-specific references in manual pages 4Subject: Adjust various OpenBSD-specific references in manual pages
@@ -44,7 +44,7 @@ index ef0de08..149846c 100644
44 .Sh SEE ALSO 44 .Sh SEE ALSO
45 .Xr ssh-keygen 1 , 45 .Xr ssh-keygen 1 ,
46diff --git a/ssh-keygen.1 b/ssh-keygen.1 46diff --git a/ssh-keygen.1 b/ssh-keygen.1
47index 9b93666..19bed1e 100644 47index 8c3317b..1a8644e 100644
48--- a/ssh-keygen.1 48--- a/ssh-keygen.1
49+++ b/ssh-keygen.1 49+++ b/ssh-keygen.1
50@@ -174,9 +174,7 @@ key in 50@@ -174,9 +174,7 @@ key in
@@ -88,10 +88,10 @@ index 9b93666..19bed1e 100644
88 The file format is described in 88 The file format is described in
89 .Xr moduli 5 . 89 .Xr moduli 5 .
90diff --git a/ssh.1 b/ssh.1 90diff --git a/ssh.1 b/ssh.1
91index c84196f..c3e1266 100644 91index ff80022..4fba77f 100644
92--- a/ssh.1 92--- a/ssh.1
93+++ b/ssh.1 93+++ b/ssh.1
94@@ -766,6 +766,10 @@ Protocol 1 is restricted to using only RSA keys, 94@@ -853,6 +853,10 @@ Protocol 1 is restricted to using only RSA keys,
95 but protocol 2 may use any. 95 but protocol 2 may use any.
96 The HISTORY section of 96 The HISTORY section of
97 .Xr ssl 8 97 .Xr ssl 8
@@ -103,7 +103,7 @@ index c84196f..c3e1266 100644
103 .Pp 103 .Pp
104 The file 104 The file
105diff --git a/sshd.8 b/sshd.8 105diff --git a/sshd.8 b/sshd.8
106index 5afd10f..2f4d4f3 100644 106index 2105979..42ba596 100644
107--- a/sshd.8 107--- a/sshd.8
108+++ b/sshd.8 108+++ b/sshd.8
109@@ -67,7 +67,7 @@ over an insecure network. 109@@ -67,7 +67,7 @@ over an insecure network.
@@ -115,7 +115,7 @@ index 5afd10f..2f4d4f3 100644
115 It forks a new 115 It forks a new
116 daemon for each incoming connection. 116 daemon for each incoming connection.
117 The forked daemons handle 117 The forked daemons handle
118@@ -864,7 +864,7 @@ This file is for host-based authentication (see 118@@ -861,7 +861,7 @@ This file is for host-based authentication (see
119 .Xr ssh 1 ) . 119 .Xr ssh 1 ) .
120 It should only be writable by root. 120 It should only be writable by root.
121 .Pp 121 .Pp
@@ -124,7 +124,7 @@ index 5afd10f..2f4d4f3 100644
124 Contains Diffie-Hellman groups used for the "Diffie-Hellman Group Exchange". 124 Contains Diffie-Hellman groups used for the "Diffie-Hellman Group Exchange".
125 The file format is described in 125 The file format is described in
126 .Xr moduli 5 . 126 .Xr moduli 5 .
127@@ -963,7 +963,6 @@ The content of this file is not sensitive; it can be world-readable. 127@@ -960,7 +960,6 @@ The content of this file is not sensitive; it can be world-readable.
128 .Xr ssh-keyscan 1 , 128 .Xr ssh-keyscan 1 ,
129 .Xr chroot 2 , 129 .Xr chroot 2 ,
130 .Xr hosts_access 5 , 130 .Xr hosts_access 5 ,
@@ -133,7 +133,7 @@ index 5afd10f..2f4d4f3 100644
133 .Xr sshd_config 5 , 133 .Xr sshd_config 5 ,
134 .Xr inetd 8 , 134 .Xr inetd 8 ,
135diff --git a/sshd_config.5 b/sshd_config.5 135diff --git a/sshd_config.5 b/sshd_config.5
136index a5afbc3..355b445 100644 136index 641e1fa..7e40a27 100644
137--- a/sshd_config.5 137--- a/sshd_config.5
138+++ b/sshd_config.5 138+++ b/sshd_config.5
139@@ -374,8 +374,7 @@ This option is only available for protocol version 2. 139@@ -374,8 +374,7 @@ This option is only available for protocol version 2.
diff --git a/debian/patches/package-versioning.patch b/debian/patches/package-versioning.patch
index ddec0ec63..e2b40654c 100644
--- a/debian/patches/package-versioning.patch
+++ b/debian/patches/package-versioning.patch
@@ -1,4 +1,4 @@
1From 2c39fe957130704a00871229c53116db4a25e0c3 Mon Sep 17 00:00:00 2001 1From 4e80e6a84e57783718ca225021a597713c44c2a2 Mon Sep 17 00:00:00 2001
2From: Matthew Vernon <matthew@debian.org> 2From: Matthew Vernon <matthew@debian.org>
3Date: Sun, 9 Feb 2014 16:10:05 +0000 3Date: Sun, 9 Feb 2014 16:10:05 +0000
4Subject: Include the Debian version in our identification 4Subject: Include the Debian version in our identification
@@ -36,10 +36,10 @@ index 4aff104..2999061 100644
36 if (roaming_atomicio(vwrite, connection_out, client_version_string, 36 if (roaming_atomicio(vwrite, connection_out, client_version_string,
37 strlen(client_version_string)) != strlen(client_version_string)) 37 strlen(client_version_string)) != strlen(client_version_string))
38diff --git a/sshd.c b/sshd.c 38diff --git a/sshd.c b/sshd.c
39index 9ff9e8b..96e75c6 100644 39index f60c9e0..e3ac37b 100644
40--- a/sshd.c 40--- a/sshd.c
41+++ b/sshd.c 41+++ b/sshd.c
42@@ -442,7 +442,7 @@ sshd_exchange_identification(int sock_in, int sock_out) 42@@ -443,7 +443,7 @@ sshd_exchange_identification(int sock_in, int sock_out)
43 } 43 }
44 44
45 xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s", 45 xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s",
@@ -49,11 +49,11 @@ index 9ff9e8b..96e75c6 100644
49 options.version_addendum, newline); 49 options.version_addendum, newline);
50 50
51diff --git a/version.h b/version.h 51diff --git a/version.h b/version.h
52index b58fbe1..bff2b3b 100644 52index 7a5dbc8..f665356 100644
53--- a/version.h 53--- a/version.h
54+++ b/version.h 54+++ b/version.h
55@@ -3,4 +3,9 @@ 55@@ -3,4 +3,9 @@
56 #define SSH_VERSION "OpenSSH_6.9" 56 #define SSH_VERSION "OpenSSH_7.0"
57 57
58 #define SSH_PORTABLE "p1" 58 #define SSH_PORTABLE "p1"
59-#define SSH_RELEASE SSH_VERSION SSH_PORTABLE 59-#define SSH_RELEASE SSH_VERSION SSH_PORTABLE
diff --git a/debian/patches/quieter-signals.patch b/debian/patches/quieter-signals.patch
index 95e0cd71c..b457610f4 100644
--- a/debian/patches/quieter-signals.patch
+++ b/debian/patches/quieter-signals.patch
@@ -1,4 +1,4 @@
1From dd148bdfe1da6fbce48c9d8ed5d74b3ad05de935 Mon Sep 17 00:00:00 2001 1From 5ddd42354edfbe0d5cc607d007f8c655ec351e2f Mon Sep 17 00:00:00 2001
2From: Peter Samuelson <peter@p12n.org> 2From: Peter Samuelson <peter@p12n.org>
3Date: Sun, 9 Feb 2014 16:09:55 +0000 3Date: Sun, 9 Feb 2014 16:09:55 +0000
4Subject: Reduce severity of "Killed by signal %d" 4Subject: Reduce severity of "Killed by signal %d"
@@ -22,10 +22,10 @@ Patch-Name: quieter-signals.patch
22 1 file changed, 4 insertions(+), 2 deletions(-) 22 1 file changed, 4 insertions(+), 2 deletions(-)
23 23
24diff --git a/clientloop.c b/clientloop.c 24diff --git a/clientloop.c b/clientloop.c
25index 964353d..65f90b8 100644 25index 9e45d24..5c2b721 100644
26--- a/clientloop.c 26--- a/clientloop.c
27+++ b/clientloop.c 27+++ b/clientloop.c
28@@ -1720,8 +1720,10 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) 28@@ -1721,8 +1721,10 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
29 exit_status = 0; 29 exit_status = 0;
30 } 30 }
31 31
diff --git a/debian/patches/restore-tcp-wrappers.patch b/debian/patches/restore-tcp-wrappers.patch
index d8d37e0d3..21c30a0ef 100644
--- a/debian/patches/restore-tcp-wrappers.patch
+++ b/debian/patches/restore-tcp-wrappers.patch
@@ -1,4 +1,4 @@
1From 1850a2c93f3dcfa3d682eaa85d1593c01d170429 Mon Sep 17 00:00:00 2001 1From 206272ccede7e6fac5d7fda30ea305349b8ad781 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Tue, 7 Oct 2014 13:22:41 +0100 3Date: Tue, 7 Oct 2014 13:22:41 +0100
4Subject: Restore TCP wrappers support 4Subject: Restore TCP wrappers support
@@ -28,7 +28,7 @@ Patch-Name: restore-tcp-wrappers.patch
28 3 files changed, 89 insertions(+) 28 3 files changed, 89 insertions(+)
29 29
30diff --git a/configure.ac b/configure.ac 30diff --git a/configure.ac b/configure.ac
31index df21693..4d55c46 100644 31index 7a25603..128889a 100644
32--- a/configure.ac 32--- a/configure.ac
33+++ b/configure.ac 33+++ b/configure.ac
34@@ -1448,6 +1448,62 @@ AC_ARG_WITH([skey], 34@@ -1448,6 +1448,62 @@ AC_ARG_WITH([skey],
@@ -94,7 +94,7 @@ index df21693..4d55c46 100644
94 # Check whether user wants to use ldns 94 # Check whether user wants to use ldns
95 LDNS_MSG="no" 95 LDNS_MSG="no"
96 AC_ARG_WITH(ldns, 96 AC_ARG_WITH(ldns,
97@@ -4928,6 +4984,7 @@ echo " KerberosV support: $KRB5_MSG" 97@@ -4953,6 +5009,7 @@ echo " KerberosV support: $KRB5_MSG"
98 echo " SELinux support: $SELINUX_MSG" 98 echo " SELinux support: $SELINUX_MSG"
99 echo " Smartcard support: $SCARD_MSG" 99 echo " Smartcard support: $SCARD_MSG"
100 echo " S/KEY support: $SKEY_MSG" 100 echo " S/KEY support: $SKEY_MSG"
@@ -103,10 +103,10 @@ index df21693..4d55c46 100644
103 echo " libedit support: $LIBEDIT_MSG" 103 echo " libedit support: $LIBEDIT_MSG"
104 echo " Solaris process contract support: $SPC_MSG" 104 echo " Solaris process contract support: $SPC_MSG"
105diff --git a/sshd.8 b/sshd.8 105diff --git a/sshd.8 b/sshd.8
106index dcf20f0..5afd10f 100644 106index 213b5fc..2105979 100644
107--- a/sshd.8 107--- a/sshd.8
108+++ b/sshd.8 108+++ b/sshd.8
109@@ -853,6 +853,12 @@ the user's home directory becomes accessible. 109@@ -850,6 +850,12 @@ the user's home directory becomes accessible.
110 This file should be writable only by the user, and need not be 110 This file should be writable only by the user, and need not be
111 readable by anyone else. 111 readable by anyone else.
112 .Pp 112 .Pp
@@ -119,7 +119,7 @@ index dcf20f0..5afd10f 100644
119 .It Pa /etc/hosts.equiv 119 .It Pa /etc/hosts.equiv
120 This file is for host-based authentication (see 120 This file is for host-based authentication (see
121 .Xr ssh 1 ) . 121 .Xr ssh 1 ) .
122@@ -956,6 +962,7 @@ The content of this file is not sensitive; it can be world-readable. 122@@ -953,6 +959,7 @@ The content of this file is not sensitive; it can be world-readable.
123 .Xr ssh-keygen 1 , 123 .Xr ssh-keygen 1 ,
124 .Xr ssh-keyscan 1 , 124 .Xr ssh-keyscan 1 ,
125 .Xr chroot 2 , 125 .Xr chroot 2 ,
@@ -128,10 +128,10 @@ index dcf20f0..5afd10f 100644
128 .Xr moduli 5 , 128 .Xr moduli 5 ,
129 .Xr sshd_config 5 , 129 .Xr sshd_config 5 ,
130diff --git a/sshd.c b/sshd.c 130diff --git a/sshd.c b/sshd.c
131index 6b85e6c..186ad55 100644 131index 32adb1f..4d8a5e8 100644
132--- a/sshd.c 132--- a/sshd.c
133+++ b/sshd.c 133+++ b/sshd.c
134@@ -129,6 +129,13 @@ 134@@ -130,6 +130,13 @@
135 #include <Security/AuthSession.h> 135 #include <Security/AuthSession.h>
136 #endif 136 #endif
137 137
@@ -145,7 +145,7 @@ index 6b85e6c..186ad55 100644
145 #ifndef O_NOCTTY 145 #ifndef O_NOCTTY
146 #define O_NOCTTY 0 146 #define O_NOCTTY 0
147 #endif 147 #endif
148@@ -2141,6 +2148,24 @@ main(int ac, char **av) 148@@ -2145,6 +2152,24 @@ main(int ac, char **av)
149 #ifdef SSH_AUDIT_EVENTS 149 #ifdef SSH_AUDIT_EVENTS
150 audit_connection_from(remote_ip, remote_port); 150 audit_connection_from(remote_ip, remote_port);
151 #endif 151 #endif
diff --git a/debian/patches/scp-quoting.patch b/debian/patches/scp-quoting.patch
index 04ba23411..ec9c62e6b 100644
--- a/debian/patches/scp-quoting.patch
+++ b/debian/patches/scp-quoting.patch
@@ -1,4 +1,4 @@
1From 3ed0b40149ad6ae1bae649d64e69614b8520cd84 Mon Sep 17 00:00:00 2001 1From 39649ea621545db3692a0ecdb2e3e9bf1bec21d5 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Nicolas=20Valc=C3=A1rcel?= <nvalcarcel@ubuntu.com> 2From: =?UTF-8?q?Nicolas=20Valc=C3=A1rcel?= <nvalcarcel@ubuntu.com>
3Date: Sun, 9 Feb 2014 16:09:59 +0000 3Date: Sun, 9 Feb 2014 16:09:59 +0000
4Subject: Adjust scp quoting in verbose mode 4Subject: Adjust scp quoting in verbose mode
diff --git a/debian/patches/selinux-role.patch b/debian/patches/selinux-role.patch
index 94496e34c..a8b214fb4 100644
--- a/debian/patches/selinux-role.patch
+++ b/debian/patches/selinux-role.patch
@@ -1,4 +1,4 @@
1From a12d63c53c0eb8926f64580eec2e4ccc57ee6f5c Mon Sep 17 00:00:00 2001 1From 10dec1266aa5cf1ad906b1bef6f67edc322c00cb Mon Sep 17 00:00:00 2001
2From: Manoj Srivastava <srivasta@debian.org> 2From: Manoj Srivastava <srivasta@debian.org>
3Date: Sun, 9 Feb 2014 16:09:49 +0000 3Date: Sun, 9 Feb 2014 16:09:49 +0000
4Subject: Handle SELinux authorisation roles 4Subject: Handle SELinux authorisation roles
@@ -113,7 +113,7 @@ index 3f49bdc..6eb3cc7 100644
113 if (auth2_setup_methods_lists(authctxt) != 0) 113 if (auth2_setup_methods_lists(authctxt) != 0)
114 packet_disconnect("no authentication methods enabled"); 114 packet_disconnect("no authentication methods enabled");
115diff --git a/monitor.c b/monitor.c 115diff --git a/monitor.c b/monitor.c
116index bdc2972..3a3d2f0 100644 116index 2658aaa..c063ad1 100644
117--- a/monitor.c 117--- a/monitor.c
118+++ b/monitor.c 118+++ b/monitor.c
119@@ -127,6 +127,7 @@ int mm_answer_sign(int, Buffer *); 119@@ -127,6 +127,7 @@ int mm_answer_sign(int, Buffer *);
@@ -203,7 +203,7 @@ index bc50ade..2d82b8b 100644
203 203
204 struct mm_master; 204 struct mm_master;
205diff --git a/monitor_wrap.c b/monitor_wrap.c 205diff --git a/monitor_wrap.c b/monitor_wrap.c
206index 71e7c08..6ae72a0 100644 206index 81ceddb..6799911 100644
207--- a/monitor_wrap.c 207--- a/monitor_wrap.c
208+++ b/monitor_wrap.c 208+++ b/monitor_wrap.c
209@@ -327,10 +327,10 @@ mm_auth2_read_banner(void) 209@@ -327,10 +327,10 @@ mm_auth2_read_banner(void)
@@ -265,7 +265,7 @@ index 9758290..57e740f 100644
265 char *mm_auth2_read_banner(void); 265 char *mm_auth2_read_banner(void);
266 int mm_auth_password(struct Authctxt *, char *); 266 int mm_auth_password(struct Authctxt *, char *);
267diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c 267diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c
268index 4637a7a..de6ad3f 100644 268index f36999d..f9cdc15 100644
269--- a/openbsd-compat/port-linux.c 269--- a/openbsd-compat/port-linux.c
270+++ b/openbsd-compat/port-linux.c 270+++ b/openbsd-compat/port-linux.c
271@@ -29,6 +29,12 @@ 271@@ -29,6 +29,12 @@
@@ -458,10 +458,10 @@ index 6a2f35e..ef6593c 100644
458 const char *value); 458 const char *value);
459 459
460diff --git a/sshd.c b/sshd.c 460diff --git a/sshd.c b/sshd.c
461index 186ad55..9ff9e8b 100644 461index 4d8a5e8..f60c9e0 100644
462--- a/sshd.c 462--- a/sshd.c
463+++ b/sshd.c 463+++ b/sshd.c
464@@ -781,7 +781,7 @@ privsep_postauth(Authctxt *authctxt) 464@@ -782,7 +782,7 @@ privsep_postauth(Authctxt *authctxt)
465 explicit_bzero(rnd, sizeof(rnd)); 465 explicit_bzero(rnd, sizeof(rnd));
466 466
467 /* Drop privileges */ 467 /* Drop privileges */
@@ -471,7 +471,7 @@ index 186ad55..9ff9e8b 100644
471 skip: 471 skip:
472 /* It is safe now to apply the key state */ 472 /* It is safe now to apply the key state */
473diff --git a/sshpty.c b/sshpty.c 473diff --git a/sshpty.c b/sshpty.c
474index 7bb7641..0e32b39 100644 474index 15da8c6..e89efb7 100644
475--- a/sshpty.c 475--- a/sshpty.c
476+++ b/sshpty.c 476+++ b/sshpty.c
477@@ -187,7 +187,7 @@ pty_change_window_size(int ptyfd, u_int row, u_int col, 477@@ -187,7 +187,7 @@ pty_change_window_size(int ptyfd, u_int row, u_int col,
diff --git a/debian/patches/series b/debian/patches/series
index b6538a45a..b37955563 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -26,8 +26,3 @@ no-openssl-version-status.patch
26gnome-ssh-askpass2-icon.patch 26gnome-ssh-askpass2-icon.patch
27sigstop.patch 27sigstop.patch
28debian-config.patch 28debian-config.patch
29backport-fix-pty-permissions.patch
30backport-do-not-resend-username-to-pam.patch
31backport-pam-use-after-free.patch
32backport-kbdint-duplicates.patch
33backport-regress-principals-command-noexec.patch
diff --git a/debian/patches/shell-path.patch b/debian/patches/shell-path.patch
index 2c8c17bca..d75268651 100644
--- a/debian/patches/shell-path.patch
+++ b/debian/patches/shell-path.patch
@@ -1,4 +1,4 @@
1From 120a9e949da169bd8672f58a66160730c2763db6 Mon Sep 17 00:00:00 2001 1From e6ac786efa1922c3a4846023b85b4425c3b27624 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:00 +0000 3Date: Sun, 9 Feb 2014 16:10:00 +0000
4Subject: Look for $SHELL on the path for ProxyCommand/LocalCommand 4Subject: Look for $SHELL on the path for ProxyCommand/LocalCommand
diff --git a/debian/patches/sigstop.patch b/debian/patches/sigstop.patch
index f568ebf3d..07cc502ea 100644
--- a/debian/patches/sigstop.patch
+++ b/debian/patches/sigstop.patch
@@ -1,4 +1,4 @@
1From 18a9869659a7e7f3bde44fa2d26599844baece2c Mon Sep 17 00:00:00 2001 1From 28b42c7cc08dd3dbdc149281912a41ae65594301 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:17 +0000 3Date: Sun, 9 Feb 2014 16:10:17 +0000
4Subject: Support synchronisation with service supervisor using SIGSTOP 4Subject: Support synchronisation with service supervisor using SIGSTOP
@@ -13,10 +13,10 @@ Patch-Name: sigstop.patch
13 1 file changed, 10 insertions(+) 13 1 file changed, 10 insertions(+)
14 14
15diff --git a/sshd.c b/sshd.c 15diff --git a/sshd.c b/sshd.c
16index 7886d0e..cc8ecaf 100644 16index d9f5199..b345c9f 100644
17--- a/sshd.c 17--- a/sshd.c
18+++ b/sshd.c 18+++ b/sshd.c
19@@ -2038,6 +2038,16 @@ main(int ac, char **av) 19@@ -2042,6 +2042,16 @@ main(int ac, char **av)
20 } 20 }
21 } 21 }
22 22
diff --git a/debian/patches/ssh-agent-setgid.patch b/debian/patches/ssh-agent-setgid.patch
index 4c5d39dc1..5cabd8ead 100644
--- a/debian/patches/ssh-agent-setgid.patch
+++ b/debian/patches/ssh-agent-setgid.patch
@@ -1,4 +1,4 @@
1From 751acd3741de0e2ae2dbd32cc5970981cb6382da Mon Sep 17 00:00:00 2001 1From ffd0bdfb5e16b792de4f98ca19f94d9e2fb8b281 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:13 +0000 3Date: Sun, 9 Feb 2014 16:10:13 +0000
4Subject: Document consequences of ssh-agent being setgid in ssh-agent(1) 4Subject: Document consequences of ssh-agent being setgid in ssh-agent(1)
diff --git a/debian/patches/ssh-argv0.patch b/debian/patches/ssh-argv0.patch
index 174d321df..e2c977c72 100644
--- a/debian/patches/ssh-argv0.patch
+++ b/debian/patches/ssh-argv0.patch
@@ -1,4 +1,4 @@
1From eb8700714181bd9e84a110edfd5978a932622aa0 Mon Sep 17 00:00:00 2001 1From c243ac551b1f62aae59ee8ae29166fd410d4e9d4 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:10:10 +0000 3Date: Sun, 9 Feb 2014 16:10:10 +0000
4Subject: ssh(1): Refer to ssh-argv0(1) 4Subject: ssh(1): Refer to ssh-argv0(1)
@@ -18,10 +18,10 @@ Patch-Name: ssh-argv0.patch
18 1 file changed, 1 insertion(+) 18 1 file changed, 1 insertion(+)
19 19
20diff --git a/ssh.1 b/ssh.1 20diff --git a/ssh.1 b/ssh.1
21index c3e1266..2178863 100644 21index 4fba77f..05b7f10 100644
22--- a/ssh.1 22--- a/ssh.1
23+++ b/ssh.1 23+++ b/ssh.1
24@@ -1487,6 +1487,7 @@ if an error occurred. 24@@ -1574,6 +1574,7 @@ if an error occurred.
25 .Xr sftp 1 , 25 .Xr sftp 1 ,
26 .Xr ssh-add 1 , 26 .Xr ssh-add 1 ,
27 .Xr ssh-agent 1 , 27 .Xr ssh-agent 1 ,
diff --git a/debian/patches/ssh-vulnkey-compat.patch b/debian/patches/ssh-vulnkey-compat.patch
index 07cdee7ce..8fb05d4c4 100644
--- a/debian/patches/ssh-vulnkey-compat.patch
+++ b/debian/patches/ssh-vulnkey-compat.patch
@@ -1,4 +1,4 @@
1From 654750762053d631bd1e1176c230eaeaad9b4250 Mon Sep 17 00:00:00 2001 1From 89dd60ab74e7ebfe4f234c4068fa941479535d8e Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@ubuntu.com> 2From: Colin Watson <cjwatson@ubuntu.com>
3Date: Sun, 9 Feb 2014 16:09:50 +0000 3Date: Sun, 9 Feb 2014 16:09:50 +0000
4Subject: Accept obsolete ssh-vulnkey configuration options 4Subject: Accept obsolete ssh-vulnkey configuration options
@@ -17,10 +17,10 @@ Patch-Name: ssh-vulnkey-compat.patch
17 2 files changed, 2 insertions(+) 17 2 files changed, 2 insertions(+)
18 18
19diff --git a/readconf.c b/readconf.c 19diff --git a/readconf.c b/readconf.c
20index 68dac76..85eea48 100644 20index 43b7570..522ad37 100644
21--- a/readconf.c 21--- a/readconf.c
22+++ b/readconf.c 22+++ b/readconf.c
23@@ -180,6 +180,7 @@ static struct { 23@@ -181,6 +181,7 @@ static struct {
24 { "passwordauthentication", oPasswordAuthentication }, 24 { "passwordauthentication", oPasswordAuthentication },
25 { "kbdinteractiveauthentication", oKbdInteractiveAuthentication }, 25 { "kbdinteractiveauthentication", oKbdInteractiveAuthentication },
26 { "kbdinteractivedevices", oKbdInteractiveDevices }, 26 { "kbdinteractivedevices", oKbdInteractiveDevices },
@@ -29,10 +29,10 @@ index 68dac76..85eea48 100644
29 { "pubkeyauthentication", oPubkeyAuthentication }, 29 { "pubkeyauthentication", oPubkeyAuthentication },
30 { "dsaauthentication", oPubkeyAuthentication }, /* alias */ 30 { "dsaauthentication", oPubkeyAuthentication }, /* alias */
31diff --git a/servconf.c b/servconf.c 31diff --git a/servconf.c b/servconf.c
32index 2f7f41e..8a5bd7b 100644 32index cfe7029..ed3a88d 100644
33--- a/servconf.c 33--- a/servconf.c
34+++ b/servconf.c 34+++ b/servconf.c
35@@ -510,6 +510,7 @@ static struct { 35@@ -522,6 +522,7 @@ static struct {
36 { "x11uselocalhost", sX11UseLocalhost, SSHCFG_ALL }, 36 { "x11uselocalhost", sX11UseLocalhost, SSHCFG_ALL },
37 { "xauthlocation", sXAuthLocation, SSHCFG_GLOBAL }, 37 { "xauthlocation", sXAuthLocation, SSHCFG_GLOBAL },
38 { "strictmodes", sStrictModes, SSHCFG_GLOBAL }, 38 { "strictmodes", sStrictModes, SSHCFG_GLOBAL },
diff --git a/debian/patches/ssh1-keepalive.patch b/debian/patches/ssh1-keepalive.patch
index 705004567..cf414d4d5 100644
--- a/debian/patches/ssh1-keepalive.patch
+++ b/debian/patches/ssh1-keepalive.patch
@@ -1,4 +1,4 @@
1From 634f3188e7f3c104cc7b13a078059f15f3f4a68a Mon Sep 17 00:00:00 2001 1From f1b6288dd90b72d4cad7e65f35d05148a5ba1874 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:09:51 +0000 3Date: Sun, 9 Feb 2014 16:09:51 +0000
4Subject: Partial server keep-alive implementation for SSH1 4Subject: Partial server keep-alive implementation for SSH1
@@ -13,10 +13,10 @@ Patch-Name: ssh1-keepalive.patch
13 2 files changed, 19 insertions(+), 11 deletions(-) 13 2 files changed, 19 insertions(+), 11 deletions(-)
14 14
15diff --git a/clientloop.c b/clientloop.c 15diff --git a/clientloop.c b/clientloop.c
16index 77d5498..964353d 100644 16index fba1b54..9e45d24 100644
17--- a/clientloop.c 17--- a/clientloop.c
18+++ b/clientloop.c 18+++ b/clientloop.c
19@@ -577,16 +577,21 @@ client_global_request_reply(int type, u_int32_t seq, void *ctxt) 19@@ -578,16 +578,21 @@ client_global_request_reply(int type, u_int32_t seq, void *ctxt)
20 static void 20 static void
21 server_alive_check(void) 21 server_alive_check(void)
22 { 22 {
@@ -47,7 +47,7 @@ index 77d5498..964353d 100644
47 } 47 }
48 48
49 /* 49 /*
50@@ -648,7 +653,7 @@ client_wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp, 50@@ -649,7 +654,7 @@ client_wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp,
51 */ 51 */
52 52
53 timeout_secs = INT_MAX; /* we use INT_MAX to mean no timeout */ 53 timeout_secs = INT_MAX; /* we use INT_MAX to mean no timeout */
@@ -57,10 +57,10 @@ index 77d5498..964353d 100644
57 server_alive_time = now + options.server_alive_interval; 57 server_alive_time = now + options.server_alive_interval;
58 } 58 }
59diff --git a/ssh_config.5 b/ssh_config.5 59diff --git a/ssh_config.5 b/ssh_config.5
60index 59ce400..e60a5b4 100644 60index b2dc49b..82dcf0c 100644
61--- a/ssh_config.5 61--- a/ssh_config.5
62+++ b/ssh_config.5 62+++ b/ssh_config.5
63@@ -1416,7 +1416,10 @@ If, for example, 63@@ -1468,7 +1468,10 @@ If, for example,
64 .Cm ServerAliveCountMax 64 .Cm ServerAliveCountMax
65 is left at the default, if the server becomes unresponsive, 65 is left at the default, if the server becomes unresponsive,
66 ssh will disconnect after approximately 45 seconds. 66 ssh will disconnect after approximately 45 seconds.
diff --git a/debian/patches/syslog-level-silent.patch b/debian/patches/syslog-level-silent.patch
index dd8fe6904..aca618985 100644
--- a/debian/patches/syslog-level-silent.patch
+++ b/debian/patches/syslog-level-silent.patch
@@ -1,4 +1,4 @@
1From ff5dffb6e1e7b0c5cd6cf8f47fa89bcef10e666d Mon Sep 17 00:00:00 2001 1From 19ab567e88d730a6862aab3fb33e399a9c3f67b2 Mon Sep 17 00:00:00 2001
2From: Jonathan David Amery <jdamery@ysolde.ucam.org> 2From: Jonathan David Amery <jdamery@ysolde.ucam.org>
3Date: Sun, 9 Feb 2014 16:09:54 +0000 3Date: Sun, 9 Feb 2014 16:09:54 +0000
4Subject: "LogLevel SILENT" compatibility 4Subject: "LogLevel SILENT" compatibility
@@ -21,10 +21,10 @@ Patch-Name: syslog-level-silent.patch
21 2 files changed, 2 insertions(+), 1 deletion(-) 21 2 files changed, 2 insertions(+), 1 deletion(-)
22 22
23diff --git a/log.c b/log.c 23diff --git a/log.c b/log.c
24index 32e1d2e..53e7b65 100644 24index ad12930..e68b84a 100644
25--- a/log.c 25--- a/log.c
26+++ b/log.c 26+++ b/log.c
27@@ -94,6 +94,7 @@ static struct { 27@@ -93,6 +93,7 @@ static struct {
28 LogLevel val; 28 LogLevel val;
29 } log_levels[] = 29 } log_levels[] =
30 { 30 {
@@ -33,10 +33,10 @@ index 32e1d2e..53e7b65 100644
33 { "FATAL", SYSLOG_LEVEL_FATAL }, 33 { "FATAL", SYSLOG_LEVEL_FATAL },
34 { "ERROR", SYSLOG_LEVEL_ERROR }, 34 { "ERROR", SYSLOG_LEVEL_ERROR },
35diff --git a/ssh.c b/ssh.c 35diff --git a/ssh.c b/ssh.c
36index 3fd5a94..d99f7ef 100644 36index 59c1f93..712ea0e 100644
37--- a/ssh.c 37--- a/ssh.c
38+++ b/ssh.c 38+++ b/ssh.c
39@@ -1105,7 +1105,7 @@ main(int ac, char **av) 39@@ -1106,7 +1106,7 @@ main(int ac, char **av)
40 /* Do not allocate a tty if stdin is not a tty. */ 40 /* Do not allocate a tty if stdin is not a tty. */
41 if ((!isatty(fileno(stdin)) || stdin_null_flag) && 41 if ((!isatty(fileno(stdin)) || stdin_null_flag) &&
42 options.request_tty != REQUEST_TTY_FORCE) { 42 options.request_tty != REQUEST_TTY_FORCE) {
diff --git a/debian/patches/user-group-modes.patch b/debian/patches/user-group-modes.patch
index b43b0c9bb..b147b45eb 100644
--- a/debian/patches/user-group-modes.patch
+++ b/debian/patches/user-group-modes.patch
@@ -1,4 +1,4 @@
1From 113450cad7a19b997e51945f012539836bba6f17 Mon Sep 17 00:00:00 2001 1From d0e69ff6f823231b121af1fe8bbe9442bfed4fe8 Mon Sep 17 00:00:00 2001
2From: Colin Watson <cjwatson@debian.org> 2From: Colin Watson <cjwatson@debian.org>
3Date: Sun, 9 Feb 2014 16:09:58 +0000 3Date: Sun, 9 Feb 2014 16:09:58 +0000
4Subject: Allow harmless group-writability 4Subject: Allow harmless group-writability
@@ -52,10 +52,10 @@ index ee9e827..2ff2cff 100644
52 pw->pw_name, buf); 52 pw->pw_name, buf);
53 auth_debug_add("Bad file modes for %.200s", buf); 53 auth_debug_add("Bad file modes for %.200s", buf);
54diff --git a/auth.c b/auth.c 54diff --git a/auth.c b/auth.c
55index e6c094d..a99c475 100644 55index fc32f6c..8255d22 100644
56--- a/auth.c 56--- a/auth.c
57+++ b/auth.c 57+++ b/auth.c
58@@ -422,8 +422,7 @@ check_key_in_hostfiles(struct passwd *pw, Key *key, const char *host, 58@@ -424,8 +424,7 @@ check_key_in_hostfiles(struct passwd *pw, Key *key, const char *host,
59 user_hostfile = tilde_expand_filename(userfile, pw->pw_uid); 59 user_hostfile = tilde_expand_filename(userfile, pw->pw_uid);
60 if (options.strict_modes && 60 if (options.strict_modes &&
61 (stat(user_hostfile, &st) == 0) && 61 (stat(user_hostfile, &st) == 0) &&
@@ -65,7 +65,7 @@ index e6c094d..a99c475 100644
65 logit("Authentication refused for %.100s: " 65 logit("Authentication refused for %.100s: "
66 "bad owner or modes for %.200s", 66 "bad owner or modes for %.200s",
67 pw->pw_name, user_hostfile); 67 pw->pw_name, user_hostfile);
68@@ -485,8 +484,7 @@ auth_secure_path(const char *name, struct stat *stp, const char *pw_dir, 68@@ -487,8 +486,7 @@ auth_secure_path(const char *name, struct stat *stp, const char *pw_dir,
69 snprintf(err, errlen, "%s is not a regular file", buf); 69 snprintf(err, errlen, "%s is not a regular file", buf);
70 return -1; 70 return -1;
71 } 71 }
@@ -75,7 +75,7 @@ index e6c094d..a99c475 100644
75 snprintf(err, errlen, "bad ownership or modes for file %s", 75 snprintf(err, errlen, "bad ownership or modes for file %s",
76 buf); 76 buf);
77 return -1; 77 return -1;
78@@ -501,8 +499,7 @@ auth_secure_path(const char *name, struct stat *stp, const char *pw_dir, 78@@ -503,8 +501,7 @@ auth_secure_path(const char *name, struct stat *stp, const char *pw_dir,
79 strlcpy(buf, cp, sizeof(buf)); 79 strlcpy(buf, cp, sizeof(buf));
80 80
81 if (stat(buf, &st) < 0 || 81 if (stat(buf, &st) < 0 ||
@@ -216,7 +216,7 @@ index f35ec39..9a23e6e 100644
216- return 0; 216- return 0;
217-} 217-}
218diff --git a/readconf.c b/readconf.c 218diff --git a/readconf.c b/readconf.c
219index 5c5890c..5f6c37f 100644 219index 46c343f..c0ba5a7 100644
220--- a/readconf.c 220--- a/readconf.c
221+++ b/readconf.c 221+++ b/readconf.c
222@@ -39,6 +39,8 @@ 222@@ -39,6 +39,8 @@
@@ -239,10 +239,10 @@ index 5c5890c..5f6c37f 100644
239 } 239 }
240 240
241diff --git a/ssh.1 b/ssh.1 241diff --git a/ssh.1 b/ssh.1
242index df7ac86..c84196f 100644 242index 2ea0a20..ff80022 100644
243--- a/ssh.1 243--- a/ssh.1
244+++ b/ssh.1 244+++ b/ssh.1
245@@ -1371,6 +1371,8 @@ The file format and configuration options are described in 245@@ -1458,6 +1458,8 @@ The file format and configuration options are described in
246 .Xr ssh_config 5 . 246 .Xr ssh_config 5 .
247 Because of the potential for abuse, this file must have strict permissions: 247 Because of the potential for abuse, this file must have strict permissions:
248 read/write for the user, and not writable by others. 248 read/write for the user, and not writable by others.
@@ -252,10 +252,10 @@ index df7ac86..c84196f 100644
252 .It Pa ~/.ssh/environment 252 .It Pa ~/.ssh/environment
253 Contains additional definitions for environment variables; see 253 Contains additional definitions for environment variables; see
254diff --git a/ssh_config.5 b/ssh_config.5 254diff --git a/ssh_config.5 b/ssh_config.5
255index 67e0dff..4e799cf 100644 255index f517159..b07e866 100644
256--- a/ssh_config.5 256--- a/ssh_config.5
257+++ b/ssh_config.5 257+++ b/ssh_config.5
258@@ -1708,6 +1708,8 @@ The format of this file is described above. 258@@ -1760,6 +1760,8 @@ The format of this file is described above.
259 This file is used by the SSH client. 259 This file is used by the SSH client.
260 Because of the potential for abuse, this file must have strict permissions: 260 Because of the potential for abuse, this file must have strict permissions:
261 read/write for the user, and not accessible by others. 261 read/write for the user, and not accessible by others.