163 lines
4.2 KiB
Markdown
163 lines
4.2 KiB
Markdown
|
|
# SSH Setup Using .env Credentials
|
||
|
|
|
||
|
|
**Last Updated**: 2024-12-19
|
||
|
|
|
||
|
|
## Current Situation
|
||
|
|
|
||
|
|
The `.env` file contains:
|
||
|
|
- ✅ **Proxmox API Tokens**: `PROXMOX_TOKEN_ML110_01` and `PROXMOX_TOKEN_R630_01`
|
||
|
|
- ✅ **Proxmox Root Password**: `PROXMOX_ROOT_PASS` (found in .env)
|
||
|
|
|
||
|
|
## Understanding the Difference
|
||
|
|
|
||
|
|
### API Tokens vs SSH Password
|
||
|
|
|
||
|
|
- **API Tokens**: Used for Proxmox API authentication (already in `.env`)
|
||
|
|
- Format: `root@pam!token-id=token-secret`
|
||
|
|
- Used for: API calls, automation scripts
|
||
|
|
- **Cannot be used for SSH**
|
||
|
|
|
||
|
|
- **SSH Password**: Used for SSH authentication (needed for key setup)
|
||
|
|
- The root user's password on Proxmox nodes
|
||
|
|
- Used for: SSH login, `ssh-copy-id`, initial key setup
|
||
|
|
- **Not currently in `.env`**
|
||
|
|
|
||
|
|
## Options for SSH Setup
|
||
|
|
|
||
|
|
### Option 1: Use Existing Password in .env (Already Available!)
|
||
|
|
|
||
|
|
The `.env` file already contains:
|
||
|
|
```bash
|
||
|
|
PROXMOX_ROOT_PASS=L@KERS2010
|
||
|
|
```
|
||
|
|
|
||
|
|
Scripts have been updated to use `PROXMOX_ROOT_PASS`.
|
||
|
|
|
||
|
|
Then use the automated script:
|
||
|
|
```bash
|
||
|
|
# Install sshpass (if not installed)
|
||
|
|
sudo apt-get install sshpass
|
||
|
|
|
||
|
|
# Run automated setup
|
||
|
|
./scripts/setup-ssh-with-password.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
### Option 2: Manual SSH Key Copy (Interactive)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# This will prompt for password
|
||
|
|
ssh-copy-id -i ~/.ssh/sankofa_proxmox.pub root@192.168.11.10
|
||
|
|
ssh-copy-id -i ~/.ssh/sankofa_proxmox.pub root@192.168.11.11
|
||
|
|
```
|
||
|
|
|
||
|
|
### Option 3: Use Existing SSH Keys
|
||
|
|
|
||
|
|
If you already have SSH access configured:
|
||
|
|
```bash
|
||
|
|
# Test existing access
|
||
|
|
ssh root@192.168.11.10 'hostname'
|
||
|
|
ssh root@192.168.11.11 'hostname'
|
||
|
|
|
||
|
|
# If working, copy the new key
|
||
|
|
ssh root@192.168.11.10 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' < ~/.ssh/sankofa_proxmox.pub
|
||
|
|
ssh root@192.168.11.11 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' < ~/.ssh/sankofa_proxmox.pub
|
||
|
|
```
|
||
|
|
|
||
|
|
### Option 4: Use Proxmox Web UI
|
||
|
|
|
||
|
|
1. Log in to Proxmox Web UI: https://ml110-01.sankofa.nexus:8006
|
||
|
|
2. Go to: **Datacenter** → **Nodes** → **ML110-01** → **Shell**
|
||
|
|
3. Run commands to add SSH key:
|
||
|
|
```bash
|
||
|
|
mkdir -p ~/.ssh
|
||
|
|
chmod 700 ~/.ssh
|
||
|
|
echo "YOUR_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
|
||
|
|
chmod 600 ~/.ssh/authorized_keys
|
||
|
|
```
|
||
|
|
4. Repeat for R630-01
|
||
|
|
|
||
|
|
## Recommended Approach
|
||
|
|
|
||
|
|
### Step 1: Password Already in .env ✅
|
||
|
|
|
||
|
|
The `.env` file already contains `PROXMOX_ROOT_PASS`. Scripts are configured to use it.
|
||
|
|
|
||
|
|
**Security Note**: The `.env` file is in `.gitignore`, so it won't be committed. Ensure proper file permissions:
|
||
|
|
```bash
|
||
|
|
chmod 600 .env
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 2: Install sshpass (for automation)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo apt-get install sshpass
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 3: Run Automated Setup
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./scripts/setup-ssh-with-password.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## Current .env Contents
|
||
|
|
|
||
|
|
The `.env` file currently has:
|
||
|
|
- ✅ `PROXMOX_TOKEN_ML110_01` - API token for ML110-01
|
||
|
|
- ✅ `PROXMOX_TOKEN_R630_01` - API token for R630-01
|
||
|
|
- ✅ `PROXMOX_USERNAME_ML110_01` - Username (root@pam)
|
||
|
|
- ✅ `PROXMOX_USERNAME_R630_01` - Username (root@pam)
|
||
|
|
- ✅ `PROXMOX_ROOT_PASS` - **Root password** (for SSH) ✅
|
||
|
|
|
||
|
|
## Quick Setup Commands
|
||
|
|
|
||
|
|
### Password is Already in .env ✅
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Install sshpass (if not installed)
|
||
|
|
sudo apt-get install sshpass
|
||
|
|
|
||
|
|
# Run setup (uses PROXMOX_ROOT_PASS from .env)
|
||
|
|
./scripts/setup-ssh-with-password.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
### If Password is NOT Available
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Manual interactive copy (will prompt for password)
|
||
|
|
ssh-copy-id -i ~/.ssh/sankofa_proxmox.pub root@192.168.11.10
|
||
|
|
ssh-copy-id -i ~/.ssh/sankofa_proxmox.pub root@192.168.11.11
|
||
|
|
|
||
|
|
# Or use Proxmox Web UI Shell to add key manually
|
||
|
|
```
|
||
|
|
|
||
|
|
## Security Considerations
|
||
|
|
|
||
|
|
1. **Password in .env**:
|
||
|
|
- ✅ File is in `.gitignore` (won't be committed)
|
||
|
|
- ⚠️ Ensure file permissions: `chmod 600 .env`
|
||
|
|
- ⚠️ Consider using SSH keys only (no password needed after initial setup)
|
||
|
|
|
||
|
|
2. **After SSH Keys are Set Up**:
|
||
|
|
- You can remove password from `.env` if desired
|
||
|
|
- SSH will work with keys only
|
||
|
|
- More secure than password authentication
|
||
|
|
|
||
|
|
## Verification
|
||
|
|
|
||
|
|
After setup, verify SSH works:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Test ML110-01
|
||
|
|
ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.10 'hostname'
|
||
|
|
|
||
|
|
# Test R630-01
|
||
|
|
ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.11 'hostname'
|
||
|
|
```
|
||
|
|
|
||
|
|
## Related Documentation
|
||
|
|
|
||
|
|
- [Remaining Blockers Guide](./REMAINING_BLOCKERS_GUIDE.md)
|
||
|
|
- [Blocker Priority Order](./BLOCKER_PRIORITY_ORDER.md)
|
||
|
|
- [Environment Variables](./ENVIRONMENT_VARIABLES.md)
|
||
|
|
|