-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathentrypoint.sh
31 lines (24 loc) · 872 Bytes
/
entrypoint.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh
# Replace $fingerprint with actual key fingerprint
edit_configs() {
sed -e "s/\$fingerprint/$1/g" daemon_config.json > daemon_config.json.edited
sed -e "s/\$fingerprint/$1y/g" signer_config.json > signer_config.json.edited
}
# Generate CA key
generate_key() {
echo "No key found at ${KEY_PATH}. Generating new key..."
ssh-keygen -b "${KEY_BITS}" -C 'certificate_authority' -N '' -f "${KEY_PATH}" -q
pubkey=`cat "${KEY_PATH}".pub`
echo "public key: ${pubkey}"
}
# Start ssh-agent
eval `ssh-agent -s` > /dev/null
[[ -f "${KEY_PATH}" ]] || generate_key
# Add SSH key
ssh-add -q "${KEY_PATH}"
# List SSH keys
key=`ssh-add -E md5 -l | head -n 1 | awk '{ printf($2) }' | cut -c 5-`
echo "MD5 fingerprint: $key"
edit_configs $key
# Start ssh-cert-authority server
ssh-cert-authority runserver --listen-address "${ADDRESS}":"${PORT}" "$@"