aileeao / simple_ssh_config.sh
aihuashanying's picture
修复不能push的问题
386b079
#!/bin/bash
echo "=== 简化 SSH 配置(尝试最简单的方法)==="
echo ""
WSL_HOST_IP=$(ip route show | grep default | awk '{print $3}')
echo "Windows 主机 IP: $WSL_HOST_IP"
echo ""
# 检查并安装 connect-proxy
if ! command -v connect-proxy > /dev/null 2>&1; then
echo "安装 connect-proxy..."
sudo apt-get update -qq
sudo apt-get install -y connect-proxy
if [ $? -ne 0 ]; then
echo "✗ 安装失败"
exit 1
fi
fi
SSH_CONFIG="$HOME/.ssh/config"
KEY_PATH="$HOME/.ssh/id_ed25519"
# 备份
if [ -f "$SSH_CONFIG" ]; then
cp "$SSH_CONFIG" "$SSH_CONFIG.backup.$(date +%Y%m%d_%H%M%S)"
fi
# 删除旧的 hf.co 配置
if grep -q "Host hf.co" "$SSH_CONFIG" 2>/dev/null; then
sed -i '/^Host hf.co$/,/^$/d' "$SSH_CONFIG"
fi
# 使用 connect-proxy 通过 HTTP 代理
cat >> "$SSH_CONFIG" << EOF
# Hugging Face SSH 配置(HTTP 代理 7897)
Host hf.co
HostName hf.co
User git
Port 443
IdentityFile $KEY_PATH
IdentitiesOnly yes
StrictHostKeyChecking accept-new
ConnectTimeout 15
ProxyCommand connect-proxy -H $WSL_HOST_IP:7897 %h %p
ServerAliveInterval 30
ServerAliveCountMax 3
TCPKeepAlive yes
EOF
chmod 600 "$SSH_CONFIG"
chmod 600 "$KEY_PATH"
chmod 644 "$KEY_PATH.pub"
echo "✓ SSH 配置已完成(使用 connect-proxy + HTTP 代理)"
echo ""
# 测试连接
echo "测试 SSH 连接..."
timeout 20 ssh -T -v [email protected] 2>&1 | grep -E "(Connecting|Authenticated|successfully|Connection|timeout|error|failed)" | head -10
SSH_EXIT=${PIPESTATUS[0]}
if [ $SSH_EXIT -eq 0 ] || [ $SSH_EXIT -eq 1 ]; then
echo ""
echo "✓ SSH 连接成功!"
echo ""
echo "现在可以正常使用 git push 了"
else
echo ""
echo "✗ SSH 连接失败"
echo ""
echo "请运行完整诊断:"
echo " ./diagnose_and_fix.sh"
fi