Spaces:
Running
Running
| echo "=== 配置 SSH 使用端口 22(已测试成功)===" | |
| echo "" | |
| 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)" | |
| echo "✓ 已备份现有配置" | |
| fi | |
| # 删除旧的 hf.co 配置 | |
| if grep -q "Host hf.co" "$SSH_CONFIG" 2>/dev/null; then | |
| sed -i '/^Host hf.co$/,/^$/d' "$SSH_CONFIG" | |
| echo "✓ 已删除旧的 hf.co 配置" | |
| fi | |
| # 添加新配置(使用端口 22) | |
| echo "配置 SSH(使用端口 22)..." | |
| cat >> "$SSH_CONFIG" << EOF | |
| # Hugging Face SSH 配置(端口 22,已测试成功) | |
| Host hf.co | |
| HostName hf.co | |
| User git | |
| Port 22 | |
| IdentityFile $KEY_PATH | |
| IdentitiesOnly yes | |
| StrictHostKeyChecking accept-new | |
| ConnectTimeout 30 | |
| ServerAliveInterval 20 | |
| ServerAliveCountMax 5 | |
| TCPKeepAlive yes | |
| EOF | |
| chmod 600 "$SSH_CONFIG" | |
| chmod 600 "$KEY_PATH" | |
| chmod 644 "$KEY_PATH.pub" | |
| echo "✓ SSH 配置已完成(端口 22)" | |
| echo "" | |
| # 显示配置 | |
| echo "当前配置:" | |
| grep -A 10 "Host hf.co" "$SSH_CONFIG" | |
| echo "" | |
| # 测试连接 | |
| echo "测试 SSH 连接(端口 22)..." | |
| timeout 40 ssh -T [email protected] 2>&1 | |
| SSH_EXIT=$? | |
| echo "" | |
| if [ $SSH_EXIT -eq 0 ] || [ $SSH_EXIT -eq 1 ]; then | |
| if ! timeout 40 ssh -T [email protected] 2>&1 | grep -qi "timeout\|refused"; then | |
| echo "✓ SSH 连接成功!" | |
| echo "" | |
| echo "=== 配置完成 ===" | |
| echo "现在可以正常使用 git push 了" | |
| echo "" | |
| echo "测试推送:" | |
| echo " git push" | |
| exit 0 | |
| fi | |
| fi | |
| echo "如果连接失败,请检查:" | |
| echo "1. SSH 公钥是否已添加到 Hugging Face" | |
| echo "2. Clash Verge 的规则是否正确配置" | |
| echo "3. 网络连接是否正常" | |