summaryrefslogtreecommitdiff
path: root/src/samizdat-ssh-uid
diff options
context:
space:
mode:
Diffstat (limited to 'src/samizdat-ssh-uid')
-rwxr-xr-xsrc/samizdat-ssh-uid39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/samizdat-ssh-uid b/src/samizdat-ssh-uid
deleted file mode 100755
index 2b4b311..0000000
--- a/src/samizdat-ssh-uid
+++ /dev/null
@@ -1,39 +0,0 @@
1#!/bin/dash
2
3die() { echo "$0: Error: $*" >&2; exit 1; }
4
5[ "$SSH_USER_AUTH" ] || die "not defined: \$SSH_USER_AUTH"
6[ -f "$SSH_USER_AUTH" ] || die "file does not exist: \$SSH_USER_AUTH=${SSH_USER_AUTH}"
7
8PEMFILE="${SSH_USER_AUTH}.tmp"
9
10sed -ne 's/^publickey //p' < "${SSH_USER_AUTH}" > "${PEMFILE}" || die "could not rewrite SSH_USER_AUTH file"
11
12SSH_CLIENT_FINGERPRINT=$(ssh-keygen -r . -f "${PEMFILE}" | sed -ne 's/^. IN SSHFP [0-9]* 2 //p') &&
13 [ "$SSH_CLIENT_FINGERPRINT" ] || die "could not determine ssh client fingerprint"
14
15read keytype keydata < "${PEMFILE}" || die "reading from PEMFILE=$PEMFILE"
16case "$keytype" in
17 ssh-rsa|ssh-dss|ecdsa-sha2-nistp256|ssh-ed25519)
18 domain=$keytype.cryptonomic.net ;;
19 *)
20 die "Unsupported key type: $keytype" ;;
21esac
22
23if [ "$1" = '--copy-pem' -a "$2" ]
24then
25 if [ -d "$2" ] || mkdir "$2"
26 then
27 mv "${PEMFILE}" "$2"/${SSH_CLIENT_FINGERPRINT}.${keytype}.pem
28 fi
29else
30 rm -f "${PEMFILE}"
31fi
32
33env -i \
34 SSH_CLIENT_FINGERPRINT="$SSH_CLIENT_FINGERPRINT" \
35 SSH_CLIENT_KEYTYPE="$keytype" \
36 SSH_CLIENT_DOMAIN="$domain" \
37 SSH_CLIENT_PEMFILE="$PEMFILE" \
38 SSH_CLIENT_KEYDATA="$keydata"
39