|
|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
Index: clientloop.c |
|
|
|
|
--- clientloop.c.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ clientloop.c 2016-03-10 19:56:07.622629256 +0100 |
|
|
|
|
@@ -161,6 +161,7 @@ |
|
|
|
|
--- clientloop.c.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ clientloop.c 2016-08-01 19:50:27.782128510 +0200 |
|
|
|
|
@@ -164,6 +164,7 @@ |
|
|
|
|
static u_int buffer_high; /* Soft max buffer size. */ |
|
|
|
|
static int connection_in; /* Connection to server (input). */ |
|
|
|
|
static int connection_out; /* Connection to server (output). */ |
|
|
|
|
@ -9,7 +9,7 @@ Index: clientloop.c
|
|
|
|
|
static int need_rekeying; /* Set to non-zero if rekeying is requested. */ |
|
|
|
|
static int session_closed; /* In SSH2: login session closed. */ |
|
|
|
|
static u_int x11_refuse_time; /* If >0, refuse x11 opens after this time. */ |
|
|
|
|
@@ -679,8 +680,11 @@ |
|
|
|
|
@@ -682,8 +683,11 @@ |
|
|
|
|
} |
|
|
|
|
if (minwait_secs != 0) |
|
|
|
|
timeout_secs = MIN(timeout_secs, (int)minwait_secs); |
|
|
|
|
@ -23,7 +23,7 @@ Index: clientloop.c
|
|
|
|
|
else { |
|
|
|
|
tv.tv_sec = timeout_secs; |
|
|
|
|
tv.tv_usec = 0; |
|
|
|
|
@@ -714,6 +718,38 @@ |
|
|
|
|
@@ -717,6 +721,38 @@ |
|
|
|
|
server_alive_check(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -62,7 +62,7 @@ Index: clientloop.c
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
@@ -1540,6 +1576,7 @@ |
|
|
|
|
@@ -1544,6 +1580,7 @@ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
start_time = get_current_time(); |
|
|
|
|
@ -71,9 +71,9 @@ Index: clientloop.c
|
|
|
|
|
/* Initialize variables. */ |
|
|
|
|
escape_pending1 = 0; |
|
|
|
|
Index: readconf.c |
|
|
|
|
--- readconf.c.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ readconf.c 2016-03-10 19:56:07.622629256 +0100 |
|
|
|
|
@@ -139,7 +139,7 @@ |
|
|
|
|
--- readconf.c.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ readconf.c 2016-08-01 19:50:27.782128510 +0200 |
|
|
|
|
@@ -151,7 +151,7 @@ |
|
|
|
|
oUser, oEscapeChar, oRhostsRSAAuthentication, oProxyCommand, |
|
|
|
|
oGlobalKnownHostsFile, oUserKnownHostsFile, oConnectionAttempts, |
|
|
|
|
oBatchMode, oCheckHostIP, oStrictHostKeyChecking, oCompression, |
|
|
|
|
@ -82,7 +82,7 @@ Index: readconf.c
|
|
|
|
|
oUsePrivilegedPort, oLogLevel, oCiphers, oProtocol, oMacs, |
|
|
|
|
oPubkeyAuthentication, |
|
|
|
|
oKbdInteractiveAuthentication, oKbdInteractiveDevices, oHostKeyAlias, |
|
|
|
|
@@ -231,6 +231,7 @@ |
|
|
|
|
@@ -244,6 +244,7 @@ |
|
|
|
|
{ "compressionlevel", oCompressionLevel }, |
|
|
|
|
{ "tcpkeepalive", oTCPKeepAlive }, |
|
|
|
|
{ "keepalive", oTCPKeepAlive }, /* obsolete */ |
|
|
|
|
@ -90,7 +90,7 @@ Index: readconf.c
|
|
|
|
|
{ "numberofpasswordprompts", oNumberOfPasswordPrompts }, |
|
|
|
|
{ "loglevel", oLogLevel }, |
|
|
|
|
{ "dynamicforward", oDynamicForward }, |
|
|
|
|
@@ -960,6 +961,10 @@ |
|
|
|
|
@@ -996,6 +997,10 @@ |
|
|
|
|
intptr = &options->no_host_authentication_for_localhost; |
|
|
|
|
goto parse_flag; |
|
|
|
|
|
|
|
|
|
@ -101,7 +101,7 @@ Index: readconf.c
|
|
|
|
|
case oNumberOfPasswordPrompts: |
|
|
|
|
intptr = &options->number_of_password_prompts; |
|
|
|
|
goto parse_int; |
|
|
|
|
@@ -1659,6 +1664,7 @@ |
|
|
|
|
@@ -1788,6 +1793,7 @@ |
|
|
|
|
options->strict_host_key_checking = -1; |
|
|
|
|
options->compression = -1; |
|
|
|
|
options->tcp_keep_alive = -1; |
|
|
|
|
@ -109,7 +109,7 @@ Index: readconf.c
|
|
|
|
|
options->compression_level = -1; |
|
|
|
|
options->port = -1; |
|
|
|
|
options->address_family = -1; |
|
|
|
|
@@ -1797,6 +1803,8 @@ |
|
|
|
|
@@ -1941,6 +1947,8 @@ |
|
|
|
|
options->compression = 0; |
|
|
|
|
if (options->tcp_keep_alive == -1) |
|
|
|
|
options->tcp_keep_alive = 1; |
|
|
|
|
@ -119,8 +119,8 @@ Index: readconf.c
|
|
|
|
|
options->compression_level = 6; |
|
|
|
|
if (options->port == -1) |
|
|
|
|
Index: readconf.h |
|
|
|
|
--- readconf.h.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ readconf.h 2016-03-10 19:56:07.632530654 +0100 |
|
|
|
|
--- readconf.h.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ readconf.h 2016-08-01 19:50:27.782128510 +0200 |
|
|
|
|
@@ -59,6 +59,9 @@ |
|
|
|
|
int tcp_keep_alive; /* Set SO_KEEPALIVE. */ |
|
|
|
|
int ip_qos_interactive; /* IP ToS/DSCP/class for interactive */ |
|
|
|
|
@ -132,8 +132,8 @@ Index: readconf.h
|
|
|
|
|
|
|
|
|
|
int port; /* Port to connect. */ |
|
|
|
|
Index: servconf.c |
|
|
|
|
--- servconf.c.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ servconf.c 2016-03-10 19:56:07.632530654 +0100 |
|
|
|
|
--- servconf.c.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ servconf.c 2016-08-01 19:50:27.782128510 +0200 |
|
|
|
|
@@ -102,6 +102,8 @@ |
|
|
|
|
options->xauth_location = NULL; |
|
|
|
|
options->strict_modes = -1; |
|
|
|
|
@ -154,7 +154,7 @@ Index: servconf.c
|
|
|
|
|
if (options->log_facility == SYSLOG_FACILITY_NOT_SET) |
|
|
|
|
options->log_facility = SYSLOG_FACILITY_AUTH; |
|
|
|
|
if (options->log_level == SYSLOG_LEVEL_NOT_SET) |
|
|
|
|
@@ -408,7 +414,7 @@ |
|
|
|
|
@@ -416,7 +422,7 @@ |
|
|
|
|
sListenAddress, sAddressFamily, |
|
|
|
|
sPrintMotd, sPrintLastLog, sIgnoreRhosts, |
|
|
|
|
sX11Forwarding, sX11DisplayOffset, sX11UseLocalhost, |
|
|
|
|
@ -163,7 +163,7 @@ Index: servconf.c
|
|
|
|
|
sPermitUserEnvironment, sUseLogin, sAllowTcpForwarding, sCompression, |
|
|
|
|
sRekeyLimit, sAllowUsers, sDenyUsers, sAllowGroups, sDenyGroups, |
|
|
|
|
sIgnoreUserKnownHosts, sCiphers, sMacs, sProtocol, sPidFile, |
|
|
|
|
@@ -525,6 +531,8 @@ |
|
|
|
|
@@ -533,6 +539,8 @@ |
|
|
|
|
{ "rekeylimit", sRekeyLimit, SSHCFG_ALL }, |
|
|
|
|
{ "tcpkeepalive", sTCPKeepAlive, SSHCFG_GLOBAL }, |
|
|
|
|
{ "keepalive", sTCPKeepAlive, SSHCFG_GLOBAL }, /* obsolete alias */ |
|
|
|
|
@ -172,7 +172,7 @@ Index: servconf.c
|
|
|
|
|
{ "allowtcpforwarding", sAllowTcpForwarding, SSHCFG_ALL }, |
|
|
|
|
{ "allowagentforwarding", sAllowAgentForwarding, SSHCFG_ALL }, |
|
|
|
|
{ "allowusers", sAllowUsers, SSHCFG_ALL }, |
|
|
|
|
@@ -1302,6 +1310,14 @@ |
|
|
|
|
@@ -1311,6 +1319,14 @@ |
|
|
|
|
intptr = &options->tcp_keep_alive; |
|
|
|
|
goto parse_flag; |
|
|
|
|
|
|
|
|
|
@ -188,8 +188,8 @@ Index: servconf.c
|
|
|
|
|
intptr = &options->permit_empty_passwd; |
|
|
|
|
goto parse_flag; |
|
|
|
|
Index: servconf.h |
|
|
|
|
--- servconf.h.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ servconf.h 2016-03-10 19:56:07.632530654 +0100 |
|
|
|
|
--- servconf.h.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ servconf.h 2016-08-01 19:50:27.782128510 +0200 |
|
|
|
|
@@ -90,6 +90,10 @@ |
|
|
|
|
int tcp_keep_alive; /* If true, set SO_KEEPALIVE. */ |
|
|
|
|
int ip_qos_interactive; /* IP ToS/DSCP/class for interactive */ |
|
|
|
|
@ -202,8 +202,8 @@ Index: servconf.h
|
|
|
|
|
char *macs; /* Supported SSH2 macs. */ |
|
|
|
|
char *kex_algorithms; /* SSH2 kex methods in order of preference. */ |
|
|
|
|
Index: serverloop.c |
|
|
|
|
--- serverloop.c.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ serverloop.c 2016-03-10 19:56:07.632530654 +0100 |
|
|
|
|
--- serverloop.c.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ serverloop.c 2016-08-01 19:51:10.172127658 +0200 |
|
|
|
|
@@ -106,6 +106,8 @@ |
|
|
|
|
static int connection_closed = 0; /* Connection to client closed. */ |
|
|
|
|
static u_int buffer_high; /* "Soft" max buffer size. */ |
|
|
|
|
@ -221,9 +221,9 @@ Index: serverloop.c
|
|
|
|
|
time_t minwait_secs = 0; |
|
|
|
|
int client_alive_scheduled = 0; |
|
|
|
|
int program_alive_scheduled = 0; |
|
|
|
|
@@ -356,6 +359,19 @@ |
|
|
|
|
if (max_time_milliseconds == 0 || client_alive_scheduled) |
|
|
|
|
max_time_milliseconds = 100; |
|
|
|
|
@@ -350,6 +353,19 @@ |
|
|
|
|
if (packet_have_data_to_write()) |
|
|
|
|
FD_SET(connection_out, *writesetp); |
|
|
|
|
|
|
|
|
|
+ /* When the watchdog is needed, set the maximum length |
|
|
|
|
+ * of timeout to 0.25sec. |
|
|
|
|
@ -238,10 +238,10 @@ Index: serverloop.c
|
|
|
|
|
+ } |
|
|
|
|
+ } |
|
|
|
|
+ |
|
|
|
|
if (max_time_milliseconds == 0) |
|
|
|
|
tvp = NULL; |
|
|
|
|
else { |
|
|
|
|
@@ -383,6 +399,23 @@ |
|
|
|
|
/* |
|
|
|
|
* If child has terminated and there is enough buffer space to read |
|
|
|
|
* from it, then read as much as is available and exit. |
|
|
|
|
@@ -385,6 +401,23 @@ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -265,7 +265,7 @@ Index: serverloop.c
|
|
|
|
|
notify_done(*readsetp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@@ -563,7 +596,9 @@ |
|
|
|
|
@@ -567,7 +600,9 @@ |
|
|
|
|
u_int64_t max_time_milliseconds; |
|
|
|
|
u_int previous_stdout_buffer_bytes; |
|
|
|
|
u_int stdout_buffer_bytes; |
|
|
|
|
@ -276,7 +276,7 @@ Index: serverloop.c
|
|
|
|
|
|
|
|
|
|
debug("Entering interactive session."); |
|
|
|
|
|
|
|
|
|
@@ -630,6 +665,8 @@ |
|
|
|
|
@@ -634,6 +669,8 @@ |
|
|
|
|
|
|
|
|
|
server_init_dispatch(); |
|
|
|
|
|
|
|
|
|
@ -285,7 +285,7 @@ Index: serverloop.c
|
|
|
|
|
/* Main loop of the server for the interactive session mode. */ |
|
|
|
|
for (;;) { |
|
|
|
|
|
|
|
|
|
@@ -710,6 +747,9 @@ |
|
|
|
|
@@ -714,6 +751,9 @@ |
|
|
|
|
cleanup_exit(255); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -295,7 +295,7 @@ Index: serverloop.c
|
|
|
|
|
/* Process any channel events. */ |
|
|
|
|
channel_after_select(readset, writeset); |
|
|
|
|
|
|
|
|
|
@@ -719,13 +759,33 @@ |
|
|
|
|
@@ -723,13 +763,33 @@ |
|
|
|
|
/* Process output to the client and to program stdin. */ |
|
|
|
|
process_output(writeset); |
|
|
|
|
} |
|
|
|
|
@ -330,7 +330,7 @@ Index: serverloop.c
|
|
|
|
|
|
|
|
|
|
debug("End of interactive session; stdin %ld, stdout (read %ld, sent %ld), stderr %ld bytes.", |
|
|
|
|
stdin_bytes, fdout_bytes, stdout_bytes, stderr_bytes); |
|
|
|
|
@@ -753,6 +813,12 @@ |
|
|
|
|
@@ -757,6 +817,12 @@ |
|
|
|
|
/* We no longer want our SIGCHLD handler to be called. */ |
|
|
|
|
mysignal(SIGCHLD, SIG_DFL); |
|
|
|
|
|
|
|
|
|
@ -343,7 +343,7 @@ Index: serverloop.c
|
|
|
|
|
while ((wait_pid = waitpid(-1, &wait_status, 0)) < 0) |
|
|
|
|
if (errno != EINTR) |
|
|
|
|
packet_disconnect("wait: %.100s", strerror(errno)); |
|
|
|
|
@@ -828,6 +894,7 @@ |
|
|
|
|
@@ -832,6 +898,7 @@ |
|
|
|
|
|
|
|
|
|
mysignal(SIGCHLD, sigchld_handler); |
|
|
|
|
child_terminated = 0; |
|
|
|
|
@ -351,7 +351,7 @@ Index: serverloop.c
|
|
|
|
|
connection_in = packet_get_connection_in(); |
|
|
|
|
connection_out = packet_get_connection_out(); |
|
|
|
|
|
|
|
|
|
@@ -844,6 +911,8 @@ |
|
|
|
|
@@ -848,6 +915,8 @@ |
|
|
|
|
|
|
|
|
|
server_init_dispatch(); |
|
|
|
|
|
|
|
|
|
@ -360,7 +360,7 @@ Index: serverloop.c
|
|
|
|
|
for (;;) { |
|
|
|
|
process_buffered_input_packets(); |
|
|
|
|
|
|
|
|
|
@@ -865,6 +934,12 @@ |
|
|
|
|
@@ -869,6 +938,12 @@ |
|
|
|
|
cleanup_exit(255); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -374,9 +374,9 @@ Index: serverloop.c
|
|
|
|
|
if (!ssh_packet_is_rekeying(active_state)) |
|
|
|
|
channel_after_select(readset, writeset); |
|
|
|
|
Index: ssh.1 |
|
|
|
|
--- ssh.1.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ ssh.1 2016-03-10 19:56:07.632530654 +0100 |
|
|
|
|
@@ -495,6 +495,7 @@ |
|
|
|
|
--- ssh.1.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ ssh.1 2016-08-01 19:50:27.792125590 +0200 |
|
|
|
|
@@ -514,6 +514,7 @@ |
|
|
|
|
.It GSSAPIAuthentication |
|
|
|
|
.It GSSAPIDelegateCredentials |
|
|
|
|
.It HashKnownHosts |
|
|
|
|
@ -385,8 +385,8 @@ Index: ssh.1
|
|
|
|
|
.It HostbasedAuthentication |
|
|
|
|
.It HostbasedKeyTypes |
|
|
|
|
Index: ssh_config.5 |
|
|
|
|
--- ssh_config.5.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ ssh_config.5 2016-03-10 19:56:07.632530654 +0100 |
|
|
|
|
--- ssh_config.5.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ ssh_config.5 2016-08-01 19:50:27.792125590 +0200 |
|
|
|
|
@@ -847,6 +847,23 @@ |
|
|
|
|
will not be converted automatically, |
|
|
|
|
but may be manually hashed using |
|
|
|
|
@ -412,9 +412,9 @@ Index: ssh_config.5
|
|
|
|
|
Specifies whether to try rhosts based authentication with public key |
|
|
|
|
authentication. |
|
|
|
|
Index: sshd_config.5 |
|
|
|
|
--- sshd_config.5.orig 2016-03-09 19:04:48.000000000 +0100 |
|
|
|
|
+++ sshd_config.5 2016-03-10 19:56:07.632530654 +0100 |
|
|
|
|
@@ -1611,6 +1611,30 @@ |
|
|
|
|
--- sshd_config.5.orig 2016-07-28 00:54:27.000000000 +0200 |
|
|
|
|
+++ sshd_config.5 2016-08-01 19:50:27.792125590 +0200 |
|
|
|
|
@@ -1623,6 +1623,30 @@ |
|
|
|
|
sent by the server upon connection. |
|
|
|
|
The default is |
|
|
|
|
.Dq none . |
|
|
|
|
|