Files
explorer-monorepo/docs/GIT_AUTHENTICATION_FIX.md

158 lines
3.6 KiB
Markdown

# Git Authentication Fix for GitHub PRs
## Problem
When pushing to GitHub, you get:
```
remote: Invalid username or token. Password authentication is not supported for Git operations.
fatal: Authentication failed
```
## Solution Options
### Option 1: Use SSH (Recommended)
**If you have SSH keys set up:**
1. **Check if you have SSH keys**:
```bash
ls -la ~/.ssh/id_*.pub
```
2. **If no SSH key exists, generate one**:
```bash
ssh-keygen -t ed25519 -C "your_email@example.com"
# Press Enter to accept default location
# Optionally set a passphrase
```
3. **Add SSH key to GitHub**:
```bash
cat ~/.ssh/id_ed25519.pub
# Copy the output
```
- Go to: https://github.com/settings/keys
- Click "New SSH key"
- Paste your public key
- Save
4. **Update remote to use SSH**:
```bash
cd /home/intlc/projects/proxmox/pr-workspace/chains
git remote set-url origin git@github.com:defiQUG/chains.git
```
5. **Test SSH connection**:
```bash
ssh -T git@github.com
# Should say: "Hi defiQUG! You've successfully authenticated..."
```
6. **Push again**:
```bash
git push origin update-chainid-138-rpc-endpoints
```
---
### Option 2: Use Personal Access Token (PAT)
**If you prefer HTTPS:**
1. **Create a Personal Access Token**:
- Go to: https://github.com/settings/tokens
- Click "Generate new token" → "Generate new token (classic)"
- Name: "PR Workspace"
- Select scopes: `repo` (full control of private repositories)
- Click "Generate token"
- **Copy the token immediately** (you won't see it again!)
2. **Update remote URL with token**:
```bash
cd /home/intlc/projects/proxmox/pr-workspace/chains
git remote set-url origin https://defiQUG:YOUR_TOKEN@github.com/defiQUG/chains.git
```
Replace `YOUR_TOKEN` with your actual token.
3. **Push**:
```bash
git push origin update-chainid-138-rpc-endpoints
```
**Note**: The token will be visible in `git remote -v`. For better security, use SSH or Git Credential Manager.
---
### Option 3: Use Git Credential Manager (Most Secure for HTTPS)
1. **Install Git Credential Manager** (if not already installed):
```bash
# On Linux
sudo apt-get install git-credential-manager
# Or download from: https://github.com/GitCredentialManager/git-credential-manager
```
2. **Configure Git to use credential manager**:
```bash
git config --global credential.helper manager
```
3. **Push (will prompt for credentials)**:
```bash
git push origin update-chainid-138-rpc-endpoints
```
- Username: `defiQUG`
- Password: Your Personal Access Token (not your GitHub password)
---
## Quick Fix Script
Run this to switch to SSH (if you have SSH keys):
```bash
cd /home/intlc/projects/proxmox/pr-workspace/chains
git remote set-url origin git@github.com:defiQUG/chains.git
git push origin update-chainid-138-rpc-endpoints
```
---
## Verify Authentication
After setting up authentication:
```bash
# Test SSH (if using SSH)
ssh -T git@github.com
# Or test with git (if using HTTPS)
git ls-remote origin
```
---
## For All Three Repositories
If you need to fix authentication for all repos:
```bash
# Chains
cd /home/intlc/projects/proxmox/pr-workspace/chains
git remote set-url origin git@github.com:defiQUG/chains.git
# Cross-Chain-Mirroring
cd /home/intlc/projects/proxmox/pr-workspace/Cross-Chain-Mirroring
git remote set-url origin git@github.com:defiQUG/Cross-Chain-Mirroring.git
# app-ethereum
cd /home/intlc/projects/proxmox/pr-workspace/app-ethereum
git remote set-url origin git@github.com:defiQUG/app-ethereum.git
```
---
**Last Updated**: 2025-12-24
**Status**: Authentication guide ready