# SSH Access Commands for Proxmox Nodes

**Date**: 2025-12-13  
**Status**: ✅ **READY**

---

## Quick Reference

### Site-1 (ML110-01)
```bash
ssh root@192.168.11.10
```

### Site-2 (R630-01)
```bash
ssh root@192.168.11.11
```

---

## Detailed Commands

### 1. SSH to ML110-01 (Site-1)

**Basic SSH**:
```bash
ssh root@192.168.11.10
```

**With hostname** (if DNS configured):
```bash
ssh root@ml110-01
```

**With SSH key** (if configured):
```bash
ssh -i ~/.ssh/proxmox_key root@192.168.11.10
```

**With specific options**:
```bash
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.11.10
```

---

### 2. SSH to R630-01 (Site-2)

**Basic SSH**:
```bash
ssh root@192.168.11.11
```

**With hostname** (if DNS configured):
```bash
ssh root@r630-01
```

**With SSH key** (if configured):
```bash
ssh -i ~/.ssh/proxmox_key root@192.168.11.11
```

**With specific options**:
```bash
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.11.11
```

---

## Connectivity Verification

### Test Network Connectivity

**Ping ML110-01**:
```bash
ping -c 3 192.168.11.10
```

**Ping R630-01**:
```bash
ping -c 3 192.168.11.11
```

### Test SSH Access

**Test ML110-01 SSH**:
```bash
ssh -o ConnectTimeout=5 root@192.168.11.10 'hostname'
# Expected output: ML110-01 or similar
```

**Test R630-01 SSH**:
```bash
ssh -o ConnectTimeout=5 root@192.168.11.11 'hostname'
# Expected output: R630-01 or similar
```

### Test Proxmox API Access

**ML110-01 API**:
```bash
curl -k https://192.168.11.10:8006/api2/json/version
# Requires authentication - will show API version if accessible
```

**R630-01 API**:
```bash
curl -k https://192.168.11.11:8006/api2/json/version
# Requires authentication - will show API version if accessible
```

---

## Useful Commands After SSH

### System Information

```bash
# Proxmox version
pveversion

# System information
hostnamectl
uname -a

# CPU information
lscpu

# Memory information
free -h

# Disk information
df -h
lsblk
```

### Proxmox Status

```bash
# Cluster status
systemctl status pve-cluster

# Proxmox services
systemctl status pveproxy
systemctl status pvedaemon

# List all VMs
qm list

# List all containers
pct list
```

### Storage Information

```bash
# Storage status
pvesm status

# Storage details
pvesm list

# Ceph status (if configured)
ceph status
ceph df
ceph osd tree
```

### Network Information

```bash
# Network interfaces
ip addr show

# Network configuration
cat /etc/network/interfaces

# Network bridges
brctl show

# Routing table
ip route show
```

### VM Management

```bash
# List all VMs
qm list

# Get VM details
qm config <VMID>

# VM status
qm status <VMID>

# Start VM
qm start <VMID>

# Stop VM
qm stop <VMID>

# Restart VM
qm reboot <VMID>
```

---

## SSH Configuration (Optional)

### Create SSH Config Entry

Add to `~/.ssh/config`:

```
Host ml110-01
    HostName 192.168.11.10
    User root
    IdentityFile ~/.ssh/proxmox_key
    StrictHostKeyChecking no

Host r630-01
    HostName 192.168.11.11
    User root
    IdentityFile ~/.ssh/proxmox_key
    StrictHostKeyChecking no
```

Then use:
```bash
ssh ml110-01
ssh r630-01
```

---

## Troubleshooting

### Connection Refused

**Check if SSH is running**:
```bash
# On the Proxmox node
systemctl status ssh
systemctl status sshd
```

**Check firewall**:
```bash
# On the Proxmox node
iptables -L -n | grep 22
ufw status  # if using ufw
```

### Authentication Issues

**Check SSH key permissions**:
```bash
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
```

**Test with password**:
```bash
ssh -o PreferredAuthentications=password root@192.168.11.10
```

### Network Issues

**Check routing**:
```bash
# From your machine
traceroute 192.168.11.10
traceroute 192.168.11.11
```

**Check if port is open**:
```bash
nc -zv 192.168.11.10 22
nc -zv 192.168.11.11 22
```

---

## Security Notes

### Best Practices

1. **Use SSH Keys**: Avoid password authentication
   ```bash
   ssh-keygen -t rsa -b 4096 -f ~/.ssh/proxmox_key
   ssh-copy-id -i ~/.ssh/proxmox_key.pub root@192.168.11.10
   ssh-copy-id -i ~/.ssh/proxmox_key.pub root@192.168.11.11
   ```

2. **Disable Root Login**: Create a non-root user with sudo
3. **Use Strong Passwords**: If password auth is required
4. **Limit SSH Access**: Use firewall rules to restrict access
5. **Use VPN**: For production environments

### Current Configuration

- **User**: `root` (default Proxmox user)
- **Port**: 22 (default SSH port)
- **Authentication**: Password or key-based
- **Network**: 192.168.11.0/24

---

## Quick Access Script

Use the provided script:
```bash
./scripts/ssh-proxmox-nodes.sh
```

This displays all SSH commands and verification steps.

---

## Related Documentation

- [Proxmox Base Configuration Review](./PROXMOX_BASE_CONFIGURATION_REVIEW.md)
- [Pre-Deployment Actions](./PRE_DEPLOYMENT_COMPLETE.md)

---

**Last Updated**: 2025-12-13  
**Status**: ✅ **READY**

