creer_cle_ssh.sh
Note de lecture générée automatiquement
Le vrai fichier est
scripts/linux/creer_cle_ssh.sh(Obsidian n’affiche pas les scripts eux-mêmes). Ne modifie pas cette note : modifie le script, puis relancepython3 generer_vues_obsidian.pydans le dossierscripts.
- À quoi il sert : Clé ed25519 + copie + test
- Lancer (dans le dossier
scripts/linux/) :./creer_cle_ssh.sh utilisateur@serveur [port] - Fiche : L08 - SSH, SCP et SFTP
- Retour : 00 - Tous les scripts
Code
#!/usr/bin/env bash
# =============================================================================
# creer_cle_ssh.sh — Crée une clé SSH ed25519 (si absente), la copie sur un
# serveur, puis vérifie que la connexion SANS mot de passe marche.
#
# Usage : ./creer_cle_ssh.sh utilisateur@serveur [port]
# Exemple : ./creer_cle_ssh.sh pi@raspberrypi.local
# ./creer_cle_ssh.sh etudiant@127.0.0.1 2222
# =============================================================================
set -euo pipefail
cible="${1:?Usage : $0 utilisateur@serveur [port]}"
port="${2:-22}"
cle_privee="$HOME/.ssh/id_ed25519"
mkdir -p "$HOME/.ssh"
chmod 700 "$HOME/.ssh"
if -f "$cle_privee"; then
echo "Clé existante réutilisée : $cle_privee"
else
echo "Création d'une nouvelle clé (une phrase de passe est conseillée) :"
ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)-$(date +%Y)" -f "$cle_privee"
fi
chmod 600 "$cle_privee"
echo "Copie de la clé publique sur $cible (port $port) — mot de passe du serveur demandé une dernière fois :"
ssh-copy-id -i "${cle_privee}.pub" -p "$port" "$cible"
echo "Test de connexion par clé uniquement :"
ssh -p "$port" -o PasswordAuthentication=no -o BatchMode=yes "$cible" \
'echo "OK : connecté à $(hostname) en tant que $(whoami), sans mot de passe."'