GestioneSSHCertificati: differenze tra le versioni

Da GazziNet.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
(9 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)**
     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.


2. Copiare la chiave pubblica sulle macchine di destinazione:
---setup_ssh_keys.sh
  $ 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 password
 
3. Testare la connessione:
  $ 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>"