[PATCH] Expose the source address in AuthorizedKeysCommand

Jean-Tiare LE BIGOT jean-tiare.le-bigot at easymile.com
Sat Nov 10 02:06:23 AEDT 2018


We can already inject 'from=' restrictions in the output of
``AuthorizedKeyCommand`` but we can not change the behavior of this
command based on the source address.

With the source address, it is possible for example to build a "Trust on
first use" mechanism similar to the ``StrictHostKeyChecking=accept-new``

This is useful in scenarios where a cluster of computers is
automatically provisioned in a trusted environment and then sent in the
field.

Signed-off-by: Jean-Tiare Le Bigot <jean-tiare.le-bigot at easymile.com>
---
 auth2-pubkey.c | 1 +
 sshd_config.5  | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/auth2-pubkey.c b/auth2-pubkey.c
index 2fb5950e..b61706e8 100644
--- a/auth2-pubkey.c
+++ b/auth2-pubkey.c
@@ -933,6 +933,7 @@ user_key_command_allowed2(struct ssh *ssh, struct
passwd *user_pw,
                    "t", sshkey_ssh_name(key),
                    "f", key_fp,
                    "k", keytext,
+                   "a", ssh_remote_ipaddr(ssh),
                    (char *)NULL);
                if (tmp == NULL)
                        fatal("%s: percent_expand failed", __func__);
diff --git a/sshd_config.5 b/sshd_config.5
index c6484370..61dd180c 100644
--- a/sshd_config.5
+++ b/sshd_config.5
@@ -1773,10 +1773,12 @@ The key or certificate type.
 The numeric user ID of the target user.
 .It %u
 The username.
+.It %a
+The connection source IP address.
 .El
 .Pp
 .Cm AuthorizedKeysCommand
-accepts the tokens %%, %f, %h, %k, %t, %U, and %u.
+accepts the tokens %%, %f, %h, %k, %t, %U, %u and %a.
 .Pp
 .Cm AuthorizedKeysFile
 accepts the tokens %%, %h, %U, and %u.
--
2.17.1


More information about the openssh-unix-dev mailing list