GestioneSSHCertificati

Da GazziNet.
Vai alla navigazione Vai alla ricerca
Obiettivo: configurare l'accesso SSH senza password da manager01.gazzi.local verso altre macchine Linux tramite chiavi SSH.

1. **Generazione chiavi SSH (sul nodo monitor01)**
   ssh-keygen -t rsa -b 4096 -C "monitor01" -f ~/.ssh/id_rsa

   - Non inserire una passphrase se vuoi accesso automatico.
   - Il file pubblico sarà ~/.ssh/id_rsa.pub

2. **Distribuzione della chiave pubblica agli host remoti**
   Per ogni macchina remota:
   ssh-copy-id utente@host_remoto

   Oppure, manualmente:
   cat ~/.ssh/id_rsa.pub | ssh utente@host_remoto 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh'

3. **Verifica connessione**
   ssh utente@host_remoto
   -> non dovrebbe richiedere la password

4. **Automazione (script `setup_ssh_keys.sh`)**
   Lo script automatizza i punti 1 e 2.

---setup_ssh_keys.sh

#!/bin/bash

# Script da eseguire su manager01.gazzi.local
# Scopo: configurare chiavi SSH e copiarle ai nodi remoti

# === CONFIGURA QUI ===
REMOTE_USER="nome_utente_remoto"
HOSTS=("host1.gazzi.local" "host2.gazzi.local" "host3.gazzi.local")
KEY_PATH="$HOME/.ssh/id_rsa"
# =====================

# 1. Genera la chiave se non esiste
if [ ! -f "$KEY_PATH" ]; then
    echo "Generazione chiave SSH..."
    ssh-keygen -t rsa -b 4096 -C "monitor01.gazzi.local" -f "$KEY_PATH" -N ""
else
    echo "Chiave SSH già presente: $KEY_PATH"
fi

# 2. Copia la chiave pubblica alle macchine remote
for host in "${HOSTS[@]}"; do
    echo "Copia della chiave su $host..."
    ssh-copy-id "$REMOTE_USER@$host"
done

echo "Configurazione completata. Verifica con: ssh $REMOTE_USER@<host>"