Console update
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
set -euo pipefail
|
||||
|
||||
TOKEN="${1:-}"
|
||||
ENC_COMMAND="${2:-}"
|
||||
if [[ -z "${TOKEN}" ]]; then
|
||||
echo "Missing token."
|
||||
exit 1
|
||||
@@ -34,6 +35,11 @@ AUTH_TYPE="$(echo "${JSON}" | jq -r '.host.auth_type')"
|
||||
KEY_PATH="$(echo "${JSON}" | jq -r '.host.key_path')"
|
||||
PASSWORD="$(echo "${JSON}" | jq -r '.host.password')"
|
||||
|
||||
COMMAND=""
|
||||
if [[ -n "${ENC_COMMAND}" ]]; then
|
||||
COMMAND="$(printf '%s' "${ENC_COMMAND}" | base64 -d 2>/dev/null || true)"
|
||||
fi
|
||||
|
||||
if [[ -z "${HOST}" || -z "${USER}" ]]; then
|
||||
echo "Host data incomplete."
|
||||
exit 1
|
||||
@@ -46,10 +52,24 @@ else
|
||||
SSH_OPTS=(-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null)
|
||||
fi
|
||||
|
||||
if [[ "${AUTH_TYPE}" == "key" && -n "${KEY_PATH}" ]]; then
|
||||
exec ssh "${SSH_OPTS[@]}" -i "${KEY_PATH}" -p "${PORT:-22}" "${USER}@${HOST}"
|
||||
elif [[ "${AUTH_TYPE}" == "pass" && -n "${PASSWORD}" ]]; then
|
||||
exec sshpass -p "${PASSWORD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" "${USER}@${HOST}"
|
||||
SSH_TARGET="${USER}@${HOST}"
|
||||
if [[ -n "${COMMAND}" ]]; then
|
||||
REMOTE_CMD="${COMMAND}; exec \$SHELL"
|
||||
REMOTE_CMD="${REMOTE_CMD//\\/\\\\}"
|
||||
REMOTE_CMD="${REMOTE_CMD//\"/\\\"}"
|
||||
if [[ "${AUTH_TYPE}" == "key" && -n "${KEY_PATH}" ]]; then
|
||||
exec ssh "${SSH_OPTS[@]}" -i "${KEY_PATH}" -p "${PORT:-22}" -t "${SSH_TARGET}" -- sh -lc "${REMOTE_CMD}"
|
||||
elif [[ "${AUTH_TYPE}" == "pass" && -n "${PASSWORD}" ]]; then
|
||||
exec sshpass -p "${PASSWORD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -t "${SSH_TARGET}" -- sh -lc "${REMOTE_CMD}"
|
||||
else
|
||||
exec ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -t "${SSH_TARGET}" -- sh -lc "${REMOTE_CMD}"
|
||||
fi
|
||||
else
|
||||
exec ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" "${USER}@${HOST}"
|
||||
if [[ "${AUTH_TYPE}" == "key" && -n "${KEY_PATH}" ]]; then
|
||||
exec ssh "${SSH_OPTS[@]}" -i "${KEY_PATH}" -p "${PORT:-22}" "${SSH_TARGET}"
|
||||
elif [[ "${AUTH_TYPE}" == "pass" && -n "${PASSWORD}" ]]; then
|
||||
exec sshpass -p "${PASSWORD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" "${SSH_TARGET}"
|
||||
else
|
||||
exec ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" "${SSH_TARGET}"
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user