fix: Git Bash 下自动定位 Windows 用户目录的私钥
This commit is contained in:
@ -37,6 +37,22 @@ if [ -f .env ]; then
|
|||||||
set -a; . ./.env; set +a
|
set -a; . ./.env; set +a
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Git Bash 的 $HOME 常是 /home/<user>,而 Windows 上生成的密钥在 C:\Users\<user>\.ssh 下。
|
||||||
|
# 这里自动兜底,避免在 Git Bash 里 ssh 找不到私钥而报 publickey denied。
|
||||||
|
if [ -z "${SSH_KEY:-}" ]; then
|
||||||
|
# Windows 用户目录优先:Git Bash 的 $HOME 下可能还躺着一把无关的旧钥匙
|
||||||
|
for cand in "/c/Users/${USERNAME:-}/.ssh/id_ed25519" "${USERPROFILE:-}/.ssh/id_ed25519" "$HOME/.ssh/id_ed25519"; do
|
||||||
|
if [ -n "$cand" ] && [ -f "$cand" ]; then
|
||||||
|
SSH_KEY="$cand"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [ -n "${SSH_KEY:-}" ]; then
|
||||||
|
SSH_OPTS="$SSH_OPTS -i $SSH_KEY"
|
||||||
|
echo " 使用私钥:$SSH_KEY"
|
||||||
|
fi
|
||||||
|
|
||||||
TUNNEL_PID=""
|
TUNNEL_PID=""
|
||||||
cleanup() { [ -n "$TUNNEL_PID" ] && kill "$TUNNEL_PID" 2>/dev/null || true; }
|
cleanup() { [ -n "$TUNNEL_PID" ] && kill "$TUNNEL_PID" 2>/dev/null || true; }
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|||||||
Reference in New Issue
Block a user