summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordjm <djm@openbsd.org>2017-06-24 05:35:05 +0000
committerdjm <djm@openbsd.org>2017-06-24 05:35:05 +0000
commit0bfd83e29798945a2c4d64be85f6d6d5342337ae (patch)
treef2b2788f4e02ee087cfe3a63c24fbc20d70fd4df
parentno need to call log_init to reinitialise logged PID in child sessions, (diff)
downloadwireguard-openbsd-0bfd83e29798945a2c4d64be85f6d6d5342337ae.tar.xz
wireguard-openbsd-0bfd83e29798945a2c4d64be85f6d6d5342337ae.zip
use HostKeyAlias if specified instead of hostname for matching host
certificate principal names; bz#2728; ok dtucker@
-rw-r--r--usr.bin/ssh/ssh_config.56
-rw-r--r--usr.bin/ssh/sshconnect.c6
-rw-r--r--usr.bin/ssh/sshd.824
3 files changed, 26 insertions, 10 deletions
diff --git a/usr.bin/ssh/ssh_config.5 b/usr.bin/ssh/ssh_config.5
index 4277f9eacc3..1cbfe0403b3 100644
--- a/usr.bin/ssh/ssh_config.5
+++ b/usr.bin/ssh/ssh_config.5
@@ -33,8 +33,8 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $OpenBSD: ssh_config.5,v 1.250 2017/05/30 19:38:17 jmc Exp $
-.Dd $Mdocdate: May 30 2017 $
+.\" $OpenBSD: ssh_config.5,v 1.251 2017/06/24 05:35:05 djm Exp $
+.Dd $Mdocdate: June 24 2017 $
.Dt SSH_CONFIG 5
.Os
.Sh NAME
@@ -809,7 +809,7 @@ The list of available key types may also be obtained using
.It Cm HostKeyAlias
Specifies an alias that should be used instead of the
real host name when looking up or saving the host key
-in the host key database files.
+in the host key database files and when validating host certificates.
This option is useful for tunneling SSH connections
or for multiple servers running on a single host.
.It Cm HostName
diff --git a/usr.bin/ssh/sshconnect.c b/usr.bin/ssh/sshconnect.c
index a9cc9f35288..ec1e9adb0c5 100644
--- a/usr.bin/ssh/sshconnect.c
+++ b/usr.bin/ssh/sshconnect.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect.c,v 1.280 2017/05/30 14:13:40 markus Exp $ */
+/* $OpenBSD: sshconnect.c,v 1.281 2017/06/24 05:35:05 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -837,7 +837,9 @@ check_host_key(char *hostname, struct sockaddr *hostaddr, u_short port,
host, type, want_cert ? "certificate" : "key");
debug("Found %s in %s:%lu", want_cert ? "CA key" : "key",
host_found->file, host_found->line);
- if (want_cert && !check_host_cert(hostname, host_key))
+ if (want_cert &&
+ !check_host_cert(options.host_key_alias == NULL ?
+ hostname : options.host_key_alias, host_key))
goto fail;
if (options.check_host_ip && ip_status == HOST_NEW) {
if (readonly || want_cert)
diff --git a/usr.bin/ssh/sshd.8 b/usr.bin/ssh/sshd.8
index 3f20dba96e4..5c16ef9cff8 100644
--- a/usr.bin/ssh/sshd.8
+++ b/usr.bin/ssh/sshd.8
@@ -33,8 +33,8 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $OpenBSD: sshd.8,v 1.289 2017/05/07 23:12:57 djm Exp $
-.Dd $Mdocdate: May 7 2017 $
+.\" $OpenBSD: sshd.8,v 1.290 2017/06/24 05:35:05 djm Exp $
+.Dd $Mdocdate: June 24 2017 $
.Dt SSHD 8
.Os
.Sh NAME
@@ -625,9 +625,23 @@ Hostnames is a comma-separated list of patterns
and
.Ql \&?
act as
-wildcards); each pattern in turn is matched against the canonical host
-name (when authenticating a client) or against the user-supplied
-name (when authenticating a server).
+wildcards); each pattern in turn is matched against the host name.
+When
+.Nm sshd
+is authenticating a client, such as when using
+.Cm HostbasedAuthentication ,
+this will be the canonical client host name.
+When
+.Xr ssh 1
+is authenticating a server, this will be the either the host name
+given by the user, the value of the
+.Xr ssh 1
+.Cm HostkeyAlias
+if it was specified, or the canonical server hostname if the
+.Xr ssh 1
+.Cm CanonicalizeHostname
+option was used.
+.Pp
A pattern may also be preceded by
.Ql \&!
to indicate negation: if the host name matches a negated