Files
loc_az_hci/scripts/fix/fix-vm-ssh-via-console.sh
defiQUG c39465c2bd
Some checks failed
Test / test (push) Has been cancelled
Initial commit: loc_az_hci (smom-dbis-138 excluded via .gitignore)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 09:04:46 -08:00

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 "$@"