# Git Credentials Quick Start Guide (Linux Mint) ## ๐Ÿš€ Quick Setup (Choose One Method) ### Method 1: SSH Keys (Most Secure - Recommended) ```bash # Run the setup script cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner ./setup-git-credentials-linux.sh # Choose option 1 (SSH Keys) ``` **What it does:** - Generates SSH key pair automatically - Shows public key to add to git.d-popov.com - Changes remote URL to SSH for passwordless access - Tests SSH connection ### Method 2: GNOME Keyring (Encrypted Storage) ```bash # Run the setup script cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner ./setup-git-credentials-linux.sh # Choose option 4 (GNOME Keyring) ``` **What it does:** - Installs git-credential-libsecret - Configures Git to use GNOME Keyring - Stores credentials encrypted in system keyring - Works with Seahorse (Passwords and Keys) ### Method 3: Personal Access Token ```bash # Run the setup script cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner ./setup-git-credentials-linux.sh # Choose option 5 (Personal Access Token) ``` **What it does:** - Configures Git to store credentials - Next push/pull will prompt for token - Remembers credentials for future use ## ๐Ÿงช Test Your Setup ```bash # Test script cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner ./test-git-credentials-linux.sh ``` This will: - โœ… Check your credential configuration - โœ… Test Git operations - โœ… Verify SSH keys (if using SSH) - โœ… Provide troubleshooting tips ## ๐Ÿ”ง Manual Commands (If Needed) ### SSH Key Setup (Manual) ```bash # Generate SSH key ssh-keygen -t ed25519 -C "your-email@example.com" # Start SSH agent (if not running) eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 # Copy public key to clipboard xclip -sel clip < ~/.ssh/id_ed25519.pub # Test SSH connection ssh -T git@git.d-popov.com ``` ### Change Remote URL ```bash # Check current remote git remote -v # Change to SSH (recommended) git remote set-url origin git@git.d-popov.com:popov/mines.git # Change back to HTTPS git remote set-url origin https://git.d-popov.com/popov/mines.git ``` ### GNOME Keyring Setup (Manual) ```bash # Install dependencies sudo apt update sudo apt install -y libsecret-1-0 libsecret-1-dev # Build and install git-credential-libsecret cd /tmp git clone https://github.com/git-ecosystem/git-credential-libsecret.git cd git-credential-libsecret sudo make install # Configure Git git config --global credential.helper libsecret ``` ## ๐Ÿšจ Troubleshooting ### VS Code Still Asks for Credentials 1. **Check credential helper:** ```bash git config --global credential.helper ``` 2. **Clear VS Code's Git cache:** - VS Code: `Ctrl+Shift+P` โ†’ "Git: Clear Credentials" 3. **Reset Git configuration:** ```bash git config --global --unset credential.helper # Then run setup script again ``` ### SSH Connection Issues ```bash # Test SSH connection ssh -T git@git.d-popov.com # Debug SSH ssh -v git@git.d-popov.com # Check SSH agent ssh-add -l ``` ### Permission Denied - โœ… Check if SSH key is added to git.d-popov.com - โœ… Verify SSH key has correct permissions (600) - โœ… Make sure you're using the correct username ### Authentication Failed - โœ… Verify Personal Access Token hasn't expired - โœ… Check if token has correct permissions - โœ… Try regenerating the token ## ๐Ÿ“‹ For git.d-popov.com Server ### Generate Personal Access Token: 1. Log into git.d-popov.com web interface 2. Go to User Settings โ†’ Access Tokens 3. Create new token with `read/write` permissions 4. Copy token (you won't see it again!) ### Add SSH Key: 1. Log into git.d-popov.com web interface 2. Go to User Settings โ†’ SSH Keys 3. Paste your public key (`~/.ssh/id_ed25519.pub`) 4. Save and test: `ssh -T git@git.d-popov.com` ## ๐Ÿ” Security Best Practices - โœ… **SSH Keys**: Most secure, no passwords stored - โœ… **GNOME Keyring**: Encrypted storage, system integration - โš ๏ธ **Store Credentials**: Plain text (avoid on shared computers) - โœ… **Personal Access Tokens**: Time-limited, can be revoked - โœ… **Regular Rotation**: Change tokens/keys periodically ## Linux Mint Specific Features ### Seahorse (Passwords and Keys) ```bash # Install Seahorse sudo apt install -y seahorse # Launch from menu or command: seahorse # View/manage Git credentials stored in GNOME Keyring ``` ### SSH Agent Integration ```bash # Check if SSH agent is running ps aux | grep ssh-agent # Start SSH agent automatically (add to ~/.bashrc) if [ -z "$SSH_AGENT_PID" ]; then eval "$(ssh-agent -s)" fi # Add SSH key to agent ssh-add ~/.ssh/id_ed25519 ``` ### Git Configuration for Linux ```bash # View all Git config git config --list --show-origin # Set up credential cache (15 minutes) git config --global credential.helper cache # Custom cache timeout (1 hour) git config --global credential.helper 'cache --timeout=3600' ``` ## ๐Ÿ“ž Need Help? 1. Run the test script: `./test-git-credentials-linux.sh` 2. Check VS Code Git output panel for errors 3. Verify your Git server configuration 4. Try different authentication methods **Quick Fix:** Run `./setup-git-credentials-linux.sh` and choose option 1 (SSH Keys) - it usually solves most issues! ๐ŸŽฏ