Some checks failed
Test / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
120 lines
3.5 KiB
Bash
Executable File
120 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
source ~/.bashrc
|
|
# Fix VM SSH Access via Proxmox Console
|
|
# Instructions for manual console access to fix SSH keys
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
|
|
# Load environment variables
|
|
if [ -f "$PROJECT_ROOT/.env" ]; then
|
|
set -a
|
|
source <(grep -v '^#' "$PROJECT_ROOT/.env" | grep -v '^$' | sed 's/#.*$//' | grep '=')
|
|
set +a
|
|
fi
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
log_info() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_warn() {
|
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
SSH_KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBGrtqePuHm2bJLNnQbuzYrpcXoHHhwWv5s2RmqEezbz proxmox-access"
|
|
|
|
# VMID NAME (IPs will be discovered via guest agent or shown from Proxmox Summary)
|
|
VMS=(
|
|
"100 cloudflare-tunnel"
|
|
"101 k3s-master"
|
|
"102 git-server"
|
|
"103 observability"
|
|
)
|
|
|
|
# Fallback IPs for reference (when guest agent not available)
|
|
declare -A FALLBACK_IPS=(
|
|
["100"]="192.168.1.60"
|
|
["101"]="192.168.1.188"
|
|
["102"]="192.168.1.121"
|
|
["103"]="192.168.1.82"
|
|
)
|
|
|
|
main() {
|
|
echo "========================================="
|
|
echo "Fix VM SSH Access via Console"
|
|
echo "========================================="
|
|
echo ""
|
|
log_info "Since SSH is not working, use Proxmox Console to fix:"
|
|
echo ""
|
|
|
|
for vm_spec in "${VMS[@]}"; do
|
|
read -r vmid name <<< "$vm_spec"
|
|
|
|
# Try to get IP from guest agent (if available)
|
|
local ip="${FALLBACK_IPS[$vmid]:-}"
|
|
if [ -f "$PROJECT_ROOT/scripts/lib/proxmox_vm_helpers.sh" ]; then
|
|
source "$PROJECT_ROOT/scripts/lib/proxmox_vm_helpers.sh" 2>/dev/null || true
|
|
local discovered_ip
|
|
discovered_ip="$(get_vm_ip_from_guest_agent "$vmid" 2>/dev/null || true)"
|
|
[[ -n "$discovered_ip" ]] && ip="$discovered_ip"
|
|
fi
|
|
|
|
echo "VM $vmid: $name"
|
|
if [[ -n "$ip" ]]; then
|
|
echo " Expected IP: $ip (check Proxmox Summary if different)"
|
|
else
|
|
echo " IP: Check Proxmox Summary for current IP"
|
|
fi
|
|
echo " 1. Access Proxmox Web UI: https://192.168.1.206:8006"
|
|
echo " 2. Navigate to: VM $vmid ($name) → Console"
|
|
echo " 3. Login as: ubuntu"
|
|
echo " 4. Run these commands:"
|
|
echo ""
|
|
echo " mkdir -p ~/.ssh"
|
|
echo " chmod 700 ~/.ssh"
|
|
echo " echo '$SSH_KEY' >> ~/.ssh/authorized_keys"
|
|
echo " chmod 600 ~/.ssh/authorized_keys"
|
|
echo ""
|
|
echo " 5. Install QEMU Guest Agent:"
|
|
echo ""
|
|
echo " sudo apt update"
|
|
echo " sudo apt install -y qemu-guest-agent"
|
|
echo " sudo systemctl enable qemu-guest-agent"
|
|
echo " sudo systemctl start qemu-guest-agent"
|
|
echo ""
|
|
if [[ -n "$ip" ]]; then
|
|
echo " 6. Test SSH from workstation:"
|
|
echo ""
|
|
echo " ssh -i ~/.ssh/id_ed25519_proxmox ubuntu@$ip"
|
|
else
|
|
echo " 6. Test SSH from workstation (use IP from Proxmox Summary):"
|
|
echo ""
|
|
echo " ssh -i ~/.ssh/id_ed25519_proxmox ubuntu@<VM_IP>"
|
|
fi
|
|
echo ""
|
|
echo "----------------------------------------"
|
|
echo ""
|
|
done
|
|
|
|
log_info "After fixing SSH, you can:"
|
|
echo " - Deploy services via SSH"
|
|
echo " - Use QEMU Guest Agent for automation"
|
|
echo " - Complete remaining tasks"
|
|
}
|
|
|
|
main "$@"
|
|
|