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 relance python3 generer_vues_obsidian.py dans le dossier 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."'