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