This commit is contained in:
2026-03-07 01:02:45 +01:00
parent fef162711d
commit 5b061e997f

View File

@@ -56,16 +56,16 @@ SSH_TARGET="${USER}@${HOST}"
TMUX_SESSION="${PI_CONTROL_TMUX_SESSION:-nexus}" TMUX_SESSION="${PI_CONTROL_TMUX_SESSION:-nexus}"
if [[ -n "${COMMAND}" ]]; then if [[ -n "${COMMAND}" ]]; then
COMMAND_B64="$(printf '%s' "${COMMAND}" | base64)" COMMAND_B64="$(printf '%s' "${COMMAND}" | base64)"
REMOTE_CMD='CMD_B64="$(cat)"; CMD="$(printf "%s" "$CMD_B64" | base64 -d)"; if command -v tmux >/dev/null 2>&1; then SESSION="'"${TMUX_SESSION}"'"; tmux has-session -t "$SESSION" 2>/dev/null || tmux new-session -d -s "$SESSION"; tmux send-keys -t "$SESSION" "$CMD" C-m; exec tmux attach -t "$SESSION"; else eval "$CMD"; exec /bin/bash -il; fi' REMOTE_CMD='CMD_B64="$1"; CMD="$(printf "%s" "$CMD_B64" | base64 -d)"; if command -v tmux >/dev/null 2>&1; then SESSION="'"${TMUX_SESSION}"'"; tmux has-session -t "$SESSION" 2>/dev/null || tmux new-session -d -s "$SESSION"; tmux send-keys -t "$SESSION" "$CMD" C-m; exec tmux attach -t "$SESSION"; else eval "$CMD"; exec /bin/bash -il; fi'
if [[ "${AUTH_TYPE}" == "key" && -n "${KEY_PATH}" ]]; then if [[ "${AUTH_TYPE}" == "key" && -n "${KEY_PATH}" ]]; then
printf '%s' "${COMMAND_B64}" | ssh "${SSH_OPTS[@]}" -i "${KEY_PATH}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/bash -lc "${REMOTE_CMD}" || \ ssh "${SSH_OPTS[@]}" -i "${KEY_PATH}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/bash -lc "${REMOTE_CMD}" _ "${COMMAND_B64}" || \
printf '%s' "${COMMAND_B64}" | ssh "${SSH_OPTS[@]}" -i "${KEY_PATH}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/sh -lc "${REMOTE_CMD}" ssh "${SSH_OPTS[@]}" -i "${KEY_PATH}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/sh -lc "${REMOTE_CMD}" _ "${COMMAND_B64}"
elif [[ "${AUTH_TYPE}" == "pass" && -n "${PASSWORD}" ]]; then elif [[ "${AUTH_TYPE}" == "pass" && -n "${PASSWORD}" ]]; then
printf '%s' "${COMMAND_B64}" | sshpass -p "${PASSWORD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/bash -lc "${REMOTE_CMD}" || \ sshpass -p "${PASSWORD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/bash -lc "${REMOTE_CMD}" _ "${COMMAND_B64}" || \
printf '%s' "${COMMAND_B64}" | sshpass -p "${PASSWORD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/sh -lc "${REMOTE_CMD}" sshpass -p "${PASSWORD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/sh -lc "${REMOTE_CMD}" _ "${COMMAND_B64}"
else else
printf '%s' "${COMMAND_B64}" | ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/bash -lc "${REMOTE_CMD}" || \ ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/bash -lc "${REMOTE_CMD}" _ "${COMMAND_B64}" || \
printf '%s' "${COMMAND_B64}" | ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/sh -lc "${REMOTE_CMD}" ssh "${SSH_OPTS[@]}" -p "${PORT:-22}" -tt "${SSH_TARGET}" -- /bin/sh -lc "${REMOTE_CMD}" _ "${COMMAND_B64}"
fi fi
exit $? exit $?
else else