#!/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 git@hf.co 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