fix(riot): simplify and secure

This commit is contained in:
Dict Xiong 2026-08-13 15:55:11 +08:00
parent 5c23484d61
commit f67ed12e49
No known key found for this signature in database
GPG Key ID: 7B97FAAC15EB0628
2 changed files with 6 additions and 5 deletions

View File

@ -178,14 +178,13 @@ probe_remote_gpg_socket() {
# The probe must be an independent connection: reusing or creating a # The probe must be an independent connection: reusing or creating a
# multiplex master here races with the immediately following login. # multiplex master here races with the immediately following login.
local query_cmd=(ssh "-S" "none" "-o" "ClearAllForwardings=yes" "-o" "RequestTTY=no") local query_cmd=(ssh "-S" "none" "-o" "ClearAllForwardings=yes")
if [[ -n "$PORT" ]]; then if [[ -n "$PORT" ]]; then
query_cmd+=("-p" "$PORT") query_cmd+=("-p" "$PORT")
fi fi
query_cmd+=( query_cmd+=(
"${SSH_OPTIONS[@]}" "${SSH_OPTIONS[@]}"
"${EXTRA_SSH_OPTIONS[@]}" "${EXTRA_SSH_OPTIONS[@]}"
"-o" "RequestTTY=no"
"-T" "-T"
"$USERNAME${USERNAME:+@}$SERVER" "$USERNAME${USERNAME:+@}$SERVER"
'socket=$(gpgconf --list-dirs agent-socket 2>/dev/null) || exit 10 'socket=$(gpgconf --list-dirs agent-socket 2>/dev/null) || exit 10
@ -290,9 +289,9 @@ eval_or_echo() {
tmux_win=$((tmux_win+1)) tmux_win=$((tmux_win+1))
$DO tmux new-window -t $TMUX_SESS:$tmux_win -d bash -l $DO tmux new-window -t $TMUX_SESS:$tmux_win -d bash -l
fi fi
for arg in "${CMD[@]}"; do local command
$DO tmux send-keys -t "$TMUX_SESS:$tmux_win" "$arg" Space printf -v command '%q ' "${CMD[@]}"
done $DO tmux send-keys -l -t "$TMUX_SESS:$tmux_win" "${command% }"
$DO tmux send-keys -t "$TMUX_SESS:$tmux_win" Enter $DO tmux send-keys -t "$TMUX_SESS:$tmux_win" Enter
else else
$DO "${CMD[@]}" $DO "${CMD[@]}"

View File

@ -123,6 +123,8 @@ MOCK_REMOTE_RESTRICTED=0 MOCK_SYSTEMD_ACTIVE=1 run_riot -g example.test > "$TEST
grep -Fq 'remote gpg-agent.socket is active' "$TEST_DIR/err" grep -Fq 'remote gpg-agent.socket is active' "$TEST_DIR/err"
grep -Fq 'ARG=none' "$MOCK_SSH_LOG" grep -Fq 'ARG=none' "$MOCK_SSH_LOG"
grep -Fq 'ARG=ClearAllForwardings=yes' "$MOCK_SSH_LOG" grep -Fq 'ARG=ClearAllForwardings=yes' "$MOCK_SSH_LOG"
grep -Fq 'ARG=-T' "$MOCK_SSH_LOG"
! grep -Fq 'ARG=RequestTTY=' "$MOCK_SSH_LOG"
grep -Fq 'ARG=StreamLocalBindUnlink=no' "$MOCK_SSH_LOG" grep -Fq 'ARG=StreamLocalBindUnlink=no' "$MOCK_SSH_LOG"
grep -Fq "ARG=$MOCK_REMOTE_SOCKET:$MOCK_LOCAL_SOCKET" "$MOCK_SSH_LOG" grep -Fq "ARG=$MOCK_REMOTE_SOCKET:$MOCK_LOCAL_SOCKET" "$MOCK_SSH_LOG"
[[ ! -e "$MOCK_REMOTE_SOCKET" ]] [[ ! -e "$MOCK_REMOTE_SOCKET" ]]