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:
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.
= Configurare Accesso SSH con Chiavi da manager01.gazzi.local =


== Introduzione ==
Questa guida spiega come generare una chiave SSH su ''manager01.gazzi.local'' e copiarla su altre macchine per permettere l'accesso senza password.


2. Copiare la chiave pubblica sulle macchine di destinazione:
== Procedura Manuale ==
  $ ssh-copy-id utente@host_remoto
Esempio:
  $ ssh-copy-id root@web01.gazzi.local


Questo comando:
<div class="mw-collapsible mw-collapsed" style="width:100%">
<div class="mw-collapsible-content">


- Inserisce la chiave pubblica nella macchina remota
=== 1. Generare la Chiave SSH ===
- Permette connessioni SSH senza inserire password
Aprire il terminale su ''manager01.gazzi.local'' e lanciare:


3. Testare la connessione:
<syntaxhighlight lang="bash">
  $ ssh utente@host_remoto
ssh-keygen -t ed25519 -C "manager01.gazzi.local"
Non dovrebbe essere richiesta alcuna password.
</syntaxhighlight>
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)


vi setup_ssh_keys.sh
Premere sempre '''INVIO''' per accettare i percorsi di default e lasciare la passphrase vuota.


#!/bin/bash
=== 2. Copiare la Chiave Sulle Macchine Remote ===
# Script da lanciare su manager01.gazzi.local
Per ogni macchina su cui vuoi autenticarti senza password, eseguire:
# 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
<syntaxhighlight lang="bash">
# Lista delle macchine a cui vuoi connetterti
ssh-copy-id utente@host_remoto
HOSTS=("web01.gazzi.local" "db01.gazzi.local" "app01.gazzi.local")
</syntaxhighlight>
# 1. Generazione della chiave SSH se non esiste
 
if [ ! -f "$HOME/.ssh/id_ed25519" ]; then
Esempio pratico:
     echo "[INFO] Genero una nuova coppia di chiavi SSH..."
 
<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"
     ssh-keygen -t ed25519 -C "manager01.gazzi.local" -N "" -f "$HOME/.ssh/id_ed25519"
else
else
     echo "[INFO] Chiave SSH già esistente. Salto la generazione."
     echo "[INFO] Chiave SSH già esistente, salto la creazione."
fi
fi
# 2. Copia della chiave pubblica verso i target
 
for HOST in "${HOSTS[@]}"; do
# 2. Copia della chiave SSH su ciascun host remoto
for HOST in "${HOSTS[@]}"; do
     echo "[INFO] Copio la chiave SSH su $HOST..."
     echo "[INFO] Copio la chiave SSH 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 "[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:34, 29 apr 2025

Configurare Accesso SSH con Chiavi da manager01.gazzi.local

Introduzione

Questa guida spiega come generare una chiave SSH su manager01.gazzi.local e copiarla su altre macchine per permettere l'accesso senza password.

Procedura Manuale

1. Generare la Chiave SSH

Aprire il terminale su manager01.gazzi.local e lanciare:

<syntaxhighlight lang="bash"> ssh-keygen -t ed25519 -C "manager01.gazzi.local" </syntaxhighlight>

Premere sempre INVIO per accettare i percorsi di default e lasciare la passphrase vuota.

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>

Script Automatico

Script Bash: setup_ssh_keys.sh

<syntaxhighlight lang="bash">

  1. !/bin/bash
  1. Script da eseguire su manager01.gazzi.local
  2. 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

  1. Elenco degli host remoti

HOSTS=("web01.gazzi.local" "db01.gazzi.local" "app01.gazzi.local")

  1. 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

  1. 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>

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