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