GestioneSSHCertificati: differenze tra le versioni

Da GazziNet.
Vai alla navigazione Vai alla ricerca
(Creata pagina con " 1. Generare la coppia di chiavi SSH sul nodo manager (manager01.gazzi.local): $ ssh-keygen -t ed25519 -C "manager01.gazzi.local" Premi INVIO per ogni domanda per usare i valori di default. 2. Copiare la chiave pubblica sulle macchine di destinazione: $ ssh-copy-id utente@host_remoto Esempio: $ ssh-copy-id root@web01.gazzi.local Questo comando: - Inserisce la chiave pubblica nella macchina remota - Permette connessioni SSH senza inserire pass...")
 
Nessun oggetto della modifica
 
(12 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
  1. Generare la coppia di chiavi SSH sul nodo manager (manager01.gazzi.local):
Obiettivo: configurare l'accesso SSH senza password da manager01.gazzi.local verso altre macchine Linux tramite chiavi SSH.
     $ ssh-keygen -t ed25519 -C "manager01.gazzi.local"
     Premi INVIO per ogni domanda per usare i valori di default.
  1. **Generazione chiavi SSH (sul nodo monitor01)**
  2. Copiare la chiave pubblica sulle macchine di destinazione:
     ssh-keygen -t rsa -b 4096 -C "monitor01" -f ~/.ssh/id_rsa
  $ ssh-copy-id utente@host_remoto
  Esempio:
    - Non inserire una passphrase se vuoi accesso automatico.
  $ ssh-copy-id root@web01.gazzi.local
     - Il file pubblico sarà ~/.ssh/id_rsa.pub
     Questo comando:
  - Inserisce la chiave pubblica nella macchina remota
  2. **Distribuzione della chiave pubblica agli host remoti**
  - Permette connessioni SSH senza inserire password
    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.


3. Testare la connessione:
---setup_ssh_keys.sh
  $ ssh utente@host_remoto
  Non dovrebbe essere richiesta alcuna password.
Note:
- Le chiavi vengono salvate in ~/.ssh/id_ed25519 (privata) e ~/.ssh/id_ed25519.pub (pubblica)
- Proteggi sempre la chiave privata (non copiarla, non condividerla)


  #!/bin/bash
  #!/bin/bash
  # Script da lanciare su manager01.gazzi.local
  # Genera una chiave SSH e la copia su una lista di host remoti
  # Script da eseguire su manager01.gazzi.local
  read -p "Inserisci il nome utente per le macchine remote: " REMOTE_USER
  # Scopo: configurare chiavi SSH e copiarle ai nodi remoti
  # Lista delle macchine a cui vuoi connetterti
   
  HOSTS=("web01.gazzi.local" "db01.gazzi.local" "app01.gazzi.local")
  # === CONFIGURA QUI ===
  # 1. Generazione della chiave SSH se non esiste
REMOTE_USER="nome_utente_remoto"
  if [ ! -f "$HOME/.ssh/id_ed25519" ]; then
  HOSTS=("host1.gazzi.local" "host2.gazzi.local" "host3.gazzi.local")
    echo "[INFO] Genero una nuova coppia di chiavi SSH..."
KEY_PATH="$HOME/.ssh/id_rsa"
    ssh-keygen -t ed25519 -C "manager01.gazzi.local" -N "" -f "$HOME/.ssh/id_ed25519"
# =====================
  # 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
  else
    echo "[INFO] Chiave SSH già esistente. Salto la generazione."
    echo "Chiave SSH già presente: $KEY_PATH"
  fi
  fi
 
  # 2. Copia della chiave pubblica verso i target
  # 2. Copia la chiave pubblica alle macchine remote
  for HOST in "${HOSTS[@]}"; do
  for host in "${HOSTS[@]}"; do
    echo "[INFO] Copio la chiave SSH su $HOST..."
    echo "Copia della chiave su $host..."
    ssh-copy-id "${REMOTE_USER}@${HOST}"
    ssh-copy-id "$REMOTE_USER@$host"
  done
  done
 
  echo "[FINE] Configurazione completata. Puoi ora connetterti senza password."
  echo "Configurazione completata. Verifica con: ssh $REMOTE_USER@<host>"

Versione attuale delle 07:40, 30 apr 2025

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