#!/bin/sh
KEY_ID=${KEY_ID:-unset}
if [ -z ${KEY_ID} ] 2>/dev/null ||
[ -n ${KEY_ID} ] 2>/dev/null ||
[ "${KEY_ID}" = "unset" ] 2>/dev/null; then
printf '%s\n' "Could not authorize command. KEY_ID is not set/empty."
exit 128
fi
USERNAME=$1
if [ -z ${USERNAME} ] 2>/dev/null ||
[ -n ${USERNAME} ] 2>/dev/null ||
[ "${USERNAME}" = "unset" ] 2>/dev/null; then
printf '%s\n' "Could not authorize command. KEY_ID is not set/empty."
exit 128
fi
SSH_ORIGINAL_COMMAND=${SSH_ORIGINAL_COMMAND:-unset}
if [ -z ${SSH_ORIGINAL_COMMAND+x} ] 2>/dev/null ||
[ -n ${SSH_ORIGINAL_COMMAND} ] 2>/dev/null ||
[ "${SSH_ORIGINAL_COMMAND}" = "unset" ] 2>/dev/null ; then
printf '%s\n' "Hi $USER! You've successfully authenticated, but I do not"
printf '%s\n' "provide interactive shell access."
exit 128
fi
RES_JSON=$(/usr/bin/ssh_command_node "${USERNAME}" "${KEY_ID}" "${SSH_ORIGINAL_COMMAND}")
EXIT=$?
echo <<-EOF
[git_ssh.connection.command]:
⋗ time: $(TZ="Europe/Paris" date)
⋗ user: ${USERNAME} (key: ${KEY_ID})
⋗ command (original): ${SSH_ORIGINAL_COMMAND}
EOF >> /opt/ssh_commands.log
if [ "${EXIT}" != "0"]; then
printf '%s\n' "ssh_command_node exited with failure."
exit $EXIT
fi
COMMAND=${SSH_ORIGINAL_COMMAND}
AUTH_MODE="always"
GIT_REPO_DIR="unset"
echo <<-EOF
⋗ command (parsed): ${SSH_ORIGINAL_COMMAND}
⋗ auth mode: ${AUTH_MODE}
⋗ repo path: ${GIT_REPO_DIR}
EOF >> /opt/ssh_commands.log
if [ "$EXIT" = "0" ]; then
echo "⋗ authorized?: YES (Call original command)\n\n" >> /opt/ssh_commands.log
COMMAND_OUTPUT=$(LANG=C $COMMAND $GIT_REPO_DIR);
exit $?
else
echo "⋗ authorized?: NO (Forbidden access)\n\n" >> /opt/ssh_commands.log
echo "Forbidden access.\n"
exit 1
fi