From 9cca9ddd4dce9d481a3ab9594d8cf8f74cde6677 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Tue, 23 Jul 2019 02:15:37 -0400 Subject: use authorized_keys.d to set $user to the basename --- hooks/post-receive | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/hooks/post-receive b/hooks/post-receive index 4e85b42..67e7610 100755 --- a/hooks/post-receive +++ b/hooks/post-receive @@ -4,5 +4,34 @@ then GIT_WORK_TREE=. git checkout -f master -- hooks/post-receive DID_SELF_UPDATE=y exec hooks/post-receive fi +exec >&2 -echo 'Hello, world!' >&2 +GIT_WORK_TREE=. git checkout -f master -- authorized_keys.d/\* + +if [ "$SSH_USER_AUTH" ] && [ -f "$SSH_USER_AUTH" ] +then + read authtype keytype keyval < "$SSH_USER_AUTH" + [ "$authtype" = publickey ] || exit + + user= + for keyname in authorized_keys.d/* + do + while read a b _ + do + case "$a $b" in + "$keytype $keyval") + user=${keyname#authorized_keys.d/} + break + ;; + esac + done < "$keyname" + done + + if [ "$user" ] + then + echo "user=$user" + fi + +else + echo "\$SSH_USER_AUTH missing. Try putting 'ExposeAuthInfo yes' in /etc/ssh/sshd_config" +fi -- cgit v1.2.3