From 312a0ebb388e62c2ddec05ebb9b0bf950d4480f8 Mon Sep 17 00:00:00 2001 From: Saravana Achu Mac Date: Mon, 4 May 2026 22:54:32 -0700 Subject: [PATCH] Add VM login helpers --- .gitignore | 2 ++ VMs/AzureVM/login.sh | 60 ++++++++++++++++++++++++++++++++++++++++ VMs/HostingerVM/login.sh | 43 ++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100755 VMs/AzureVM/login.sh create mode 100755 VMs/HostingerVM/login.sh diff --git a/.gitignore b/.gitignore index 8dae692..f876b09 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ ENV/ .idea/ *.swp *.swo +.claude/ # OS files .DS_Store @@ -32,6 +33,7 @@ Thumbs.db .env *.env accounts.json +.azure/ # Generated outputs and local data caches supabase monitor/output/ diff --git a/VMs/AzureVM/login.sh b/VMs/AzureVM/login.sh new file mode 100755 index 0000000..5dcef40 --- /dev/null +++ b/VMs/AzureVM/login.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Azure VM login script +SUBSCRIPTION_ID="fee4ea1f-3e5f-45a6-aaa6-dd6b72f20554" +RESOURCE_GROUP="UMA-OPENCLAW-BOTS" +VM_NAME="usaa-openclaw-linux" +DEFAULT_USER="saravana" +DEFAULT_HOST="168.61.21.159" +SSH_KEY="${HOME}/.ssh/id_rsa" +SSH_PORT=22 + +# Allow overrides via environment variables +VM_USER="${VM_USER:-$DEFAULT_USER}" +VM_HOST="${VM_HOST:-}" +VM_PORT="${VM_PORT:-$SSH_PORT}" +VM_KEY="${VM_KEY:-$SSH_KEY}" + +if ! command -v ssh >/dev/null 2>&1; then + echo "ERROR: ssh is not installed." + exit 1 +fi + +if [[ ! -f "$VM_KEY" ]]; then + echo "ERROR: SSH key not found at $VM_KEY" + exit 1 +fi + +chmod 600 "$VM_KEY" + +if [[ -z "$VM_HOST" ]] && command -v az >/dev/null 2>&1; then + VM_HOST="$(az vm show -d \ + --subscription "$SUBSCRIPTION_ID" \ + -g "$RESOURCE_GROUP" \ + -n "$VM_NAME" \ + --query 'publicIps' \ + -o tsv 2>/dev/null || true)" +fi + +if [[ -z "$VM_HOST" ]]; then + VM_HOST="$DEFAULT_HOST" +fi + +echo "Connecting to Azure VM" +echo " VM : $VM_NAME" +echo " Host : $VM_HOST" +echo " User : $VM_USER" +echo " Port : $VM_PORT" +echo " Key : $VM_KEY" +echo "──────────────────────────────────" + +exec ssh \ + -i "$VM_KEY" \ + -p "$VM_PORT" \ + -o StrictHostKeyChecking=accept-new \ + -o ServerAliveInterval=60 \ + -o ServerAliveCountMax=3 \ + -o PasswordAuthentication=no \ + -o IdentitiesOnly=yes \ + "${VM_USER}@${VM_HOST}" diff --git a/VMs/HostingerVM/login.sh b/VMs/HostingerVM/login.sh new file mode 100755 index 0000000..8dea8b9 --- /dev/null +++ b/VMs/HostingerVM/login.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ── Hostinger VM login script ────────────────────────────────────────────── +HOST="srv1491630.hstgr.cloud" +DEFAULT_USER="root" +SSH_KEY="${HOME}/.ssh/id_ed25519" # change to id_rsa if needed +SSH_PORT=22 + +# ── Allow overrides via environment variables ────────────────────────────── +VM_USER="${VM_USER:-$DEFAULT_USER}" +VM_PORT="${VM_PORT:-$SSH_PORT}" +VM_KEY="${VM_KEY:-$SSH_KEY}" + +# ── Safety checks ────────────────────────────────────────────────────────── +if [[ ! -f "$VM_KEY" ]]; then + echo "ERROR: SSH key not found at $VM_KEY" + echo " Generate one with: ssh-keygen -t ed25519 -C 'hostinger-vm'" + echo " Then copy it: ssh-copy-id -i $VM_KEY ${VM_USER}@${HOST}" + exit 1 +fi + +# Ensure key has correct permissions (SSH refuses overly-permissive keys) +chmod 600 "$VM_KEY" + +# ── Print connection info ────────────────────────────────────────────────── +echo "Connecting to Hostinger VM" +echo " Host : $HOST" +echo " User : $VM_USER" +echo " Port : $VM_PORT" +echo " Key : $VM_KEY" +echo "──────────────────────────────────" + +# ── SSH with hardened options ────────────────────────────────────────────── +ssh \ + -i "$VM_KEY" \ + -p "$VM_PORT" \ + -o StrictHostKeyChecking=accept-new \ + -o ServerAliveInterval=60 \ + -o ServerAliveCountMax=3 \ + -o PasswordAuthentication=no \ + -o IdentitiesOnly=yes \ + "${VM_USER}@${HOST}"