diff --git a/SSH-SETUP.md b/SSH-SETUP.md new file mode 100644 index 0000000..3a1fe4c --- /dev/null +++ b/SSH-SETUP.md @@ -0,0 +1,106 @@ +# SSH Setup for Gitea + +To push code to Gitea from your VPS, you need to set up SSH authentication. + +## Generate SSH Key + +On your VPS, run: + +```bash +ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" +``` + +This creates: +- `~/.ssh/id_ed25519` (private key) +- `~/.ssh/id_ed25519.pub` (public key) + +## Add Public Key to Gitea + +1. Display your public key: + ```bash + cat ~/.ssh/id_ed25519.pub + ``` + +2. Copy the output (entire line starting with `ssh-ed25519`) + +3. Go to Gitea: http://100.120.125.113:3000/user/settings/keys + +4. Click "Add Key" + +5. Paste your public key + +6. Click "Add Key" + +## Test SSH Connection + +Verify it works: + +```bash +ssh -T git@100.120.125.113 +``` + +You should see a message like: +``` +Hi pdm! You've successfully authenticated, but Gitea does not provide shell access. +``` + +## Using SSH with Git + +When you `init-project`, it automatically sets up SSH remotes: + +```bash +init-project my-app +cd my-app +git remote -v +# Should show: origin git@100.120.125.113:pdm/my-app.git (fetch) +``` + +Now when you push: +```bash +git push origin main +``` + +No password needed - SSH key handles authentication! + +## Troubleshooting + +**SSH key not being used:** +```bash +# Check SSH agent is running +eval "$(ssh-agent -s)" + +# Add your key +ssh-add ~/.ssh/id_ed25519 +``` + +**Still getting authentication errors:** +1. Verify key is in Gitea (http://100.120.125.113:3000/user/settings/keys) +2. Check file permissions: `chmod 600 ~/.ssh/id_ed25519` +3. Test connection: `ssh -T git@100.120.125.113` + +**Need different key per VPS:** +Generate separate keys: +```bash +ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_vps-name -N "" +``` + +Add to Gitea with a descriptive name (e.g., "vps-name-key") + +## One-Time Setup Script + +To automate this on a new VPS: + +```bash +#!/bin/bash +# Auto-setup SSH for Gitea +mkdir -p ~/.ssh +ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" +echo "" +echo "✅ SSH key generated!" +echo "Add this to Gitea (http://100.120.125.113:3000/user/settings/keys):" +cat ~/.ssh/id_ed25519.pub +echo "" +echo "Test with: ssh -T git@100.120.125.113" +``` + +Save as `~/.homelab-scripts/setup-ssh.sh` and run: `bash ~/.homelab-scripts/setup-ssh.sh` \ No newline at end of file