Files
nt8-sdk/FIX_GIT_AUTH.md
2026-02-24 15:00:41 -05:00

205 lines
3.9 KiB
Markdown

# Fix Git Authentication Issues
## Problem
Git credentials expire after a few hours, causing `Authentication failed` errors.
---
## Quick Fix Options
### Option 1: Re-authenticate (Immediate)
```powershell
# Push and enter credentials when prompted
git push
# Enter your Gitea username and password/token when prompted
```
---
### Option 2: Update Credential Helper (Permanent Fix)
```powershell
# Set credential helper to store credentials permanently
git config --global credential.helper store
# Or use Windows Credential Manager (recommended for Windows)
git config --global credential.helper wincred
# Or use manager-core (modern credential manager)
git config --global credential.helper manager-core
# Then push - it will ask for credentials ONE TIME and remember
git push
```
After running one of these, the next `git push` will prompt for credentials **once** and then remember them.
---
### Option 3: Use SSH Instead of HTTPS (Best Long-term)
This eliminates password prompts entirely.
**Step 1: Generate SSH Key**
```powershell
# Generate new SSH key
ssh-keygen -t ed25519 -C "your-email@example.com"
# Press Enter to accept default location: C:\Users\YourName\.ssh\id_ed25519
# Enter a passphrase (or press Enter for no passphrase)
```
**Step 2: Copy Public Key**
```powershell
# Display your public key
cat ~/.ssh/id_ed25519.pub
# Or copy to clipboard
clip < ~/.ssh/id_ed25519.pub
```
**Step 3: Add to Gitea**
1. Go to https://git.thehussains.org
2. User Settings → SSH/GPG Keys → Add Key
3. Paste your public key
4. Save
**Step 4: Update Remote URL**
```powershell
cd C:\dev\nt8-sdk
# Check current remote
git remote -v
# Change from HTTPS to SSH
git remote set-url origin git@git.thehussains.org:mo/nt8-sdk.git
# Verify change
git remote -v
# Now push with SSH (no password needed)
git push
```
---
### Option 4: Use Personal Access Token
**Step 1: Create Token in Gitea**
1. Go to https://git.thehussains.org
2. User Settings → Applications → Generate New Token
3. Name it "NT8-SDK-Development"
4. Select scopes: `repo` (full control)
5. Generate and **COPY THE TOKEN** (you won't see it again)
**Step 2: Use Token as Password**
```powershell
# When prompted for password, paste the token instead
git push
# Username: mo
# Password: [paste your token here]
```
**Step 3: Store Token Permanently**
```powershell
# Configure credential helper
git config --global credential.helper store
# Push once with token
git push
# Enter username and token when prompted
# Future pushes won't require credentials
```
---
## Recommended Solution
**For now (immediate):** Use Option 2
```powershell
git config --global credential.helper manager-core
git push
# Enter credentials once, will be remembered
```
**For best security:** Use Option 3 (SSH keys)
- No passwords to remember
- More secure
- Works across all Git operations
- One-time setup
---
## Current Status - What to Do Now
**Immediate action:**
```powershell
# Quick fix - store credentials
git config --global credential.helper store
# Push with credentials
git push
# Enter your Gitea username and password
# Credentials will be stored for future use
```
---
## Verify Credential Helper
```powershell
# Check what credential helper is configured
git config --global credential.helper
# Should show one of:
# - store
# - wincred
# - manager-core
```
---
## Troubleshooting
**If credentials still don't work:**
```powershell
# Clear existing credentials
git credential reject <<EOF
protocol=https
host=git.thehussains.org
EOF
# Try push again with fresh credentials
git push
```
**If using 2FA on Gitea:**
- You MUST use a Personal Access Token, not your password
- See Option 4 above
---
## After Fixing Auth
Once authentication is working, continue with the Phase 5 commit:
```powershell
# Verify you can access remote
git fetch
# Push your commits
git push
# Should succeed without authentication errors
```
---
**Recommended: Run Option 2 now, then switch to SSH (Option 3) when you have time.**