GestioneSSHCertificati: differenze tra le versioni

Da GazziNet.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
 
Obiettivo: configurare l'accesso SSH senza password da manager01.gazzi.local verso altre macchine Linux tramite chiavi SSH.
 
= Configurare Accesso SSH con Chiavi da manager01.gazzi.local =
1. **Generazione chiavi SSH (sul nodo manager01)**
 
    ssh-keygen -t rsa -b 4096 -C "manager01" -f ~/.ssh/id_rsa
== Introduzione ==
Questa guida spiega come generare una chiave SSH su ''manager01.gazzi.local'' e copiarla su altre macchine per permettere l'accesso senza password.
    - Non inserire una passphrase se vuoi accesso automatico.
 
    - Il file pubblico sarà ~/.ssh/id_rsa.pub
== Procedura Manuale ==
 
2. **Distribuzione della chiave pubblica agli host remoti**
<div class="mw-collapsible mw-collapsed" style="width:100%">
    Per ogni macchina remota:
<div class="mw-collapsible-content">
    ssh-copy-id utente@host_remoto
 
=== 1. Generare la Chiave SSH ===
    Oppure, manualmente:
Aprire il terminale su ''manager01.gazzi.local'' e lanciare:
    cat ~/.ssh/id_rsa.pub | ssh utente@host_remoto 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh'
 
<syntaxhighlight lang="bash">
3. **Verifica connessione**
ssh-keygen -t ed25519 -C "manager01.gazzi.local"
    ssh utente@host_remoto
</syntaxhighlight>
     -> non dovrebbe richiedere la password
 
Premere sempre '''INVIO''' per accettare i percorsi di default e lasciare la passphrase vuota.
4. **Automazione (script `setup_ssh_keys.sh`)**
 
    Lo script automatizza i punti 1 e 2.
=== 2. Copiare la Chiave Sulle Macchine Remote ===
Per ogni macchina su cui vuoi autenticarti senza password, eseguire:
 
<syntaxhighlight lang="bash">
ssh-copy-id utente@host_remoto
</syntaxhighlight>
 
Esempio pratico:
 
<syntaxhighlight lang="bash">
ssh-copy-id root@web01.gazzi.local
</syntaxhighlight>
 
=== 3. Testare la Connessione ===
Verificare che la connessione SSH ora avvenga senza password:
 
<syntaxhighlight lang="bash">
ssh utente@host_remoto
</syntaxhighlight>
 
</div>
</div>
 
== Script Automatico ==
 
<div class="mw-collapsible mw-collapsed" style="width:100%">
<div class="mw-collapsible-content">
 
=== Script Bash: setup_ssh_keys.sh ===
 
<syntaxhighlight lang="bash">
#!/bin/bash
 
# Script da eseguire su manager01.gazzi.local
# Crea la chiave SSH (se non esiste) e la copia su una lista di host remoti
 
read -p "Inserisci il nome utente per le macchine remote: " REMOTE_USER
 
# Elenco degli host remoti
HOSTS=("web01.gazzi.local" "db01.gazzi.local" "app01.gazzi.local")
 
# 1. Generazione della chiave SSH se assente
if [ ! -f "$HOME/.ssh/id_ed25519" ]; then
    echo "[INFO] Genero 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 creazione."
fi
 
# 2. Copia della chiave SSH su ciascun host remoto
for HOST in "${HOSTS[@]}"; do
     echo "[INFO] Copio la chiave SSH su $HOST..."
    ssh-copy-id "${REMOTE_USER}@${HOST}"
done
 
echo "[FINE] Configurazione completata."
</syntaxhighlight>
 
</div>
</div>
 
== Esecuzione dello Script ==
 
<syntaxhighlight lang="bash">
chmod +x setup_ssh_keys.sh
./setup_ssh_keys.sh
</syntaxhighlight>
 
== Note Importanti ==
 
* La chiave privata deve essere protetta. Non condividerla mai.
* La chiave pubblica può essere distribuita liberamente.
* Se un host remoto ha una porta SSH diversa dalla 22, modificare '''ssh-copy-id''' aggiungendo l'opzione '''-p PORTA'''.
 
== Collegamenti Utili ==
 
* [https://man.openbsd.org/ssh-keygen ssh-keygen man page]
* [https://man.openbsd.org/ssh-copy-id ssh-copy-id man page]

Versione delle 19:42, 29 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 manager01)**
   ssh-keygen -t rsa -b 4096 -C "manager01" -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.