fix: Git Bash 下自动定位 Windows 用户目录的私钥
This commit is contained in:
@ -37,6 +37,22 @@ if [ -f .env ]; then
|
||||
set -a; . ./.env; set +a
|
||||
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=""
|
||||
cleanup() { [ -n "$TUNNEL_PID" ] && kill "$TUNNEL_PID" 2>/dev/null || true; }
|
||||
trap cleanup EXIT
|
||||
|
||||
Reference in New Issue
Block a user