SSH pour Radioamateurs
Commandes essentielles pour le contrôle à distance de vos stations, VPN et infrastructures radio
Pourquoi SSH pour les radioamateurs ?
Le protocole SSH (Secure Shell) est devenu incontournable pour les radioamateurs modernes. Que ce soit pour contrôler un transceiver à distance, gérer un serveur de modes numériques, configurer un VPN pour accéder à votre station depuis n’importe où, ou maintenir un hotspot DMR, SSH est l’outil de choix.
Cette page rassemble les commandes SSH essentielles, avec des exemples concrets adaptés à nos usages radioamateurs.
Connexion SSH de base
Connexion simple
La commande de base pour se connecter à votre station ou serveur distant :
ssh utilisateur@adresse_ip
Exemple :
ssh f4hxn@192.168.1.100ssh pi@station-radio.f4hxn.fr
Connexion avec port personnalisé
Si vous avez changé le port SSH par défaut (22) pour des raisons de sécurité :
ssh -p 2222 utilisateur@adresse_ip
Connexion avec clé SSH
La méthode la plus sécurisée, particulièrement recommandée pour les accès VPN :
ssh -i ~/.ssh/id_ed25519 utilisateur@adresse_ip
Transfert de fichiers
SCP – Copier un fichier vers le serveur
Idéal pour transférer vos fichiers de configuration, logs ADIF, ou images SSTV :
scp fichier.txt utilisateur@serveur:/chemin/destination/
Exemple radioamateur :
scp qso_log.adi pi@station-dmr:/home/pi/logs/scp config_wsjt.ini f4hxn@192.168.1.100:/home/f4hxn/.config/
SCP – Récupérer un fichier depuis le serveur
scp utilisateur@serveur:/chemin/fichier.txt ./
Exemple :
scp pi@hotspot-dmr:/var/log/mmdvm.log ~/Bureau/
SCP – Copier un dossier complet (récursif)
scp -r dossier/ utilisateur@serveur:/destination/
Exemple :
scp -r ~/configs_radio/ pi@station:/home/pi/backup/
Authentification par clés SSH (Recommandé)
Pourquoi utiliser des clés SSH ?
Les clés SSH sont beaucoup plus sécurisées que les mots de passe :
- Immunité aux attaques par force brute : une clé ed25519 de 256 bits est pratiquement incassable
- Pas de saisie de mot de passe : connexion automatique une fois configurée
- Idéal pour les scripts : automatisation sans interaction
- Révocable facilement : supprimez une clé sans changer tous vos mots de passe
- Une clé pour plusieurs serveurs : propagez votre clé publique partout
Étape 1 : Générer une paire de clés sur votre ordinateur
Sur votre PC/Mac/Linux, ouvrez un terminal et générez votre paire de clés :
Option recommandée : ed25519 (moderne, rapide, sécurisé)
ssh-keygen -t ed25519 -C "f4hxn@station-radio"
Alternative : RSA 4096 bits (compatible avec les vieux systèmes)
ssh-keygen -t rsa -b 4096 -C "f4hxn@station-radio"
Réponses aux questions :
Enter file in which to save the key (/home/you/.ssh/id_ed25519): [ENTRÉE]
Enter passphrase (empty for no passphrase): [Tapez une passphrase forte]
Enter same passphrase again: [Retapez la passphrase]
La passphrase : C’est une protection supplémentaire pour votre clé privée. Même si quelqu’un vole votre fichier id_ed25519, il ne pourra pas l’utiliser sans la passphrase. Choisissez-en une forte ! (ou laissez vide pour l’automatisation, mais c’est moins sécurisé).
Résultat : Deux fichiers créés dans ~/.ssh/ :
id_ed25519 → Clé PRIVÉE (à protéger absolument !)id_ed25519.pub → Clé PUBLIQUE (peut être partagée)
Étape 2 : Copier la clé publique sur le serveur distant
Maintenant, il faut installer votre clé publique sur les serveurs auxquels vous voulez vous connecter.
Méthode automatique (la plus simple)
# Pour ed25519
ssh-copy-id -i ~/.ssh/id_ed25519.pub utilisateur@serveur
# Exemples concrets :
ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@192.168.1.100
ssh-copy-id -i ~/.ssh/id_ed25519.pub f4hxn@station-radio.f4hxn.fr
ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@hotspot-dmr.local
Vous devrez entrer le mot de passe SSH une dernière fois. Après ça, plus besoin !
Méthode manuelle (si ssh-copy-id n’existe pas)
# Afficher votre clé publique
cat ~/.ssh/id_ed25519.pub
# Copier la sortie, puis se connecter au serveur
ssh utilisateur@serveur
# Sur le serveur : créer le dossier .ssh
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# Ajouter votre clé dans authorized_keys
nano ~/.ssh/authorized_keys
# Collez votre clé publique, sauvegardez (Ctrl+X, Y, Entrée)
# Permissions correctes
chmod 600 ~/.ssh/authorized_keys
Méthode en une ligne (pour les pros)
cat ~/.ssh/id_ed25519.pub | ssh utilisateur@serveur "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Étape 3 : Tester la connexion par clé
Testez que tout fonctionne correctement :
# Connexion avec votre clé
ssh -i ~/.ssh/id_ed25519 utilisateur@serveur
# Exemples :
ssh -i ~/.ssh/id_ed25519 pi@192.168.1.100
ssh -i ~/.ssh/id_ed25519 f4hxn@station-radio.f4hxn.fr
Si vous avez mis une passphrase, on vous la demandera. C’est normal !
Si ça fonctionne sans demander le mot de passe SSH du serveur → C’est bon !
Succès ! Vous êtes maintenant connecté avec votre clé SSH. La connexion est sécurisée et vous n’avez plus besoin de taper le mot de passe du serveur.
Étape 4 : Simplifier avec ~/.ssh/config
Pour ne plus avoir à taper -i ~/.ssh/id_ed25519 à chaque fois :
# Éditez votre fichier de configuration SSH local
nano ~/.ssh/config
# Ajoutez vos serveurs :
Host station
HostName 192.168.1.100
User f4hxn
IdentityFile ~/.ssh/id_ed25519
Port 22
Host hotspot-dmr
HostName hotspot-dmr.local
User pi
IdentityFile ~/.ssh/id_ed25519
Host sdr-remote
HostName sdr.f4hxn.fr
User sdruser
IdentityFile ~/.ssh/id_ed25519
Port 2222
Maintenant, connectez-vous simplement avec :
ssh station
ssh hotspot-dmr
ssh sdr-remote
Astuce radioamateur : Créez des alias pour tous vos équipements !
• ssh station → Station principale QTH
• ssh portable → Station portable/mobile
• ssh dmr → Hotspot DMR
• ssh repeater → Relais VHF/UHF
• ssh sdr → Serveur WebSDR
• ssh aprs → iGate APRS
Étape 5 : Désactiver l’authentification par mot de passe (optionnel mais recommandé)
ATTENTION : Ne faites ceci qu’après avoir vérifié que la connexion par clé fonctionne sur TOUS vos appareils (PC, laptop, smartphone, etc.) ! Sinon vous risquez de vous bloquer l’accès.
Une fois que tout fonctionne, sécurisez votre serveur en désactivant les mots de passe :
# Sur le SERVEUR (pas sur votre PC)
sudo nano /etc/ssh/sshd_config
# Modifiez ou ajoutez ces lignes :
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM no
# Sauvegardez (Ctrl+X, Y, Entrée)
# Redémarrez le service SSH
sudo systemctl restart sshd
# Ou sur certains systèmes :
sudo service ssh restart
Résultat : Votre serveur n’accepte plus que les connexions par clé SSH. Les robots qui tentent de deviner des mots de passe sont maintenant bloqués. Votre station est beaucoup plus sécurisée !
Scénario : Vous avez un Raspberry Pi qui contrôle votre transceiver et vous voulez y accéder depuis votre PC.
# 1. Générer les clés
ssh-keygen -t ed25519 -C "f4hxn-station"
# 2. Copier sur le Raspberry Pi
ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@192.168.1.100
# 3. Configurer l'alias
echo "Host station" >> ~/.ssh/config
echo " HostName 192.168.1.100" >> ~/.ssh/config
echo " User pi" >> ~/.ssh/config
echo " IdentityFile ~/.ssh/id_ed25519" >> ~/.ssh/config
# 4. Se connecter simplement
ssh station
# Désactiver l'authentification par mot de passe
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
Terminé ! Votre station est maintenant accessible en tapant simplement ssh station
Cas d’usage spécifiques
Accès à votre station depuis l’extérieur :
ssh -L 4532:localhost:4532 f4hxn@station.vpn
Redirige le port Hamlib (rigctld) vers votre PC local
Accéder à distance à WSJT-X, fldigi, etc. :
ssh -L 5900:localhost:5900 pi@station-radio
Puis connectez votre client VNC à localhost:5900
Tunnel SSH pour interfaces web locales :
ssh -L 8080:localhost:80 pi@pistar.local
Accédez ensuite à http://localhost:8080
Rediriger l’audio ou les données :
ssh -L 7355:localhost:7355 user@websdr-server
Port utilisé par certains serveurs WebSDR
Commandes avancées
Exécuter une commande à distance
Lancer une commande sans ouvrir de session interactive :
ssh utilisateur@serveur "commande"
Exemples radioamateurs :
ssh pi@hotspot "sudo systemctl restart mmdvmhost"ssh f4hxn@station "cat /var/log/wsjtx.log | tail -20"ssh pi@sdr "rtl_test -t"
Connexion persistante avec écran (screen)
Garder un processus actif même après déconnexion (idéal pour direwolf, wsjtx-cli, etc.) :
ssh utilisateur@serveur
screen -S radio_session
# lancer votre application
# Ctrl+A puis D pour détacher
# Plus tard : screen -r radio_session pour revenir
SSHFS – Monter un dossier distant
Accéder aux fichiers distants comme s’ils étaient locaux :
sshfs utilisateur@serveur:/chemin/distant ~/point_montage/
Exemple :
sshfs pi@station:/home/pi/logs ~/station_logs/
Pour démonter :
fusermount -u ~/station_logs/
Proxy SOCKS pour navigation sécurisée
Utiliser votre station comme proxy (utile en déplacement) :
ssh -D 8080 utilisateur@station
Configurez ensuite votre navigateur pour utiliser localhost:8080 comme proxy SOCKS5
Configuration ~/.ssh/config
Simplifier vos connexions
Créez des alias pour vos stations fréquemment utilisées :
# Fichier ~/.ssh/config
Host station
HostName 192.168.1.100
User f4hxn
Port 22
IdentityFile ~/.ssh/id_ed25519
Host hotspot-dmr
HostName hotspot.local
User pi
IdentityFile ~/.ssh/id_rsa_pistar
Host sdr-remote
HostName sdr.f4hxn.fr
User sdruser
Port 2222
LocalForward 8073 localhost:8073
Ensuite, connectez-vous simplement avec :
ssh station
ssh hotspot-dmr
ssh sdr-remote
Conseils de sécurité pour radioamateurs
L’authentification par clés est beaucoup plus sécurisée que les mots de passe. Une clé SSH ed25519 de 256 bits est pratiquement impossible à craquer par force brute.
Étape 1 : Générer une paire de clés sur votre PC
# Génération d'une clé ed25519 (recommandé)
ssh-keygen -t ed25519 -C "f4hxn@station-radio"
# Ou RSA 4096 bits si ed25519 n'est pas supporté
ssh-keygen -t rsa -b 4096 -C "f4hxn@station-radio"
Choisissez une passphrase solide pour protéger votre clé privée
Les fichiers créés : ~/.ssh/id_ed25519 (privée) et ~/.ssh/id_ed25519.pub (publique)
Étape 2 : Copier la clé publique sur le serveur
# Méthode automatique (recommandée)
ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@192.168.1.100
# Méthode manuelle si ssh-copy-id n'existe pas
cat ~/.ssh/id_ed25519.pub | ssh pi@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Étape 3 : Tester la connexion par clé
ssh -i ~/.ssh/id_ed25519 pi@192.168.1.100
Étape 4 : Désactiver l’authentification par mot de passe
ATTENTION : Ne faites ceci qu’après avoir vérifié que la connexion par clé fonctionne !
# Sur le serveur, éditez la configuration SSH
sudo nano /etc/ssh/sshd_config
# Modifiez ou ajoutez ces lignes :
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM no
# Redémarrez le service SSH
sudo systemctl restart sshd
Conseil radioamateur : Gardez une session SSH ouverte pendant que vous testez la nouvelle configuration. Si quelque chose ne fonctionne pas, vous pourrez revenir en arrière sans être bloqué !
Le port 22 est constamment scanné par des robots. Changer de port réduit drastiquement le nombre de tentatives d’intrusion automatiques dans vos logs.
Configuration du nouveau port
# Sur le serveur, éditez la configuration
sudo nano /etc/ssh/sshd_config
# Modifiez la ligne Port (décommentez si nécessaire)
Port 2222
# Redémarrez SSH
sudo systemctl restart sshd
Connexion avec le nouveau port
# Connexion directe
ssh -p 2222 pi@station-radio.f4hxn.fr
# Ou ajoutez dans ~/.ssh/config :
Host station
HostName station-radio.f4hxn.fr
Port 2222
User pi
Pare-feu : n’oubliez pas d’autoriser le nouveau port !
# Avec UFW (Ubuntu/Debian)
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp # Supprimez l'ancien port
sudo ufw enable
# Avec iptables
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Conseil : Choisissez un port entre 1024 et 65535. Évitez les ports courants (8080, 3389, etc.). Pour les radioamateurs : 7300, 14074, ou 28074 peuvent être des choix mnémotechniques !
Plutôt que d’exposer SSH directement sur Internet, créez un tunnel VPN crypté. C’est la méthode recommandée pour accéder à votre station depuis l’extérieur.
Option 1 : WireGuard (recommandé pour les radioamateurs)
# Installation sur Raspberry Pi / Debian
sudo apt update
sudo apt install wireguard
# Génération des clés
wg genkey | tee privatekey | wg pubkey > publickey
# Configuration serveur : /etc/wireguard/wg0.conf
[Interface]
PrivateKey = CLÉ_PRIVÉE_SERVEUR
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = CLÉ_PUBLIQUE_CLIENT
AllowedIPs = 10.0.0.2/32
# Activation
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
Une fois connecté au VPN, vous accédez à votre station comme si vous étiez sur le réseau local :
# Connexion normale via l'IP VPN
ssh pi@10.0.0.1
# Accès à votre transceiver via Hamlib
ssh -L 4532:localhost:4532 pi@10.0.0.1
# Interface web Pi-Star
http://10.0.0.1
Option 2 : OpenVPN (alternative classique)
# Installation simplifiée avec PiVPN
curl -L https://install.pivpn.io | bash
# Création d'un profil client
pivpn add -n f4hxn-laptop
# Le fichier .ovpn est créé dans ~/ovpns/
Avantages VPN :
• SSH non exposé directement sur Internet
• Accès à tous vos services locaux (WebSDR, Pi-Star, etc.)
• Chiffrement de bout en bout
• Pas besoin d’ouvrir 10 ports différents sur votre box
Fail2ban surveille vos logs et bannit automatiquement les adresses IP qui font trop de tentatives de connexion échouées. Indispensable si votre SSH est exposé sur Internet !
Installation
# Installation
sudo apt update
sudo apt install fail2ban
# Démarrage automatique
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Configuration pour SSH
# Créez un fichier de configuration local
sudo nano /etc/fail2ban/jail.local
# Contenu du fichier :
[DEFAULT]
bantime = 3600 # 1 heure de bannissement
findtime = 600 # Fenêtre de détection (10 min)
maxretry = 3 # 3 échecs maximum
destemail = f4hxn@example.com
sendername = Fail2Ban-Station
action = %(action_mwl)s # Bannir + email
[sshd]
enabled = true
port = 2222 # Votre port SSH personnalisé
logpath = /var/log/auth.log
maxretry = 3
# Redémarrez fail2ban
sudo systemctl restart fail2ban
Commandes utiles
# Statut général
sudo fail2ban-client status
# Statut SSH spécifique
sudo fail2ban-client status sshd
# Débannir une IP (si vous vous êtes bloqué !)
sudo fail2ban-client set sshd unbanip 192.168.1.50
# Voir les IP bannies
sudo iptables -L -n | grep DROP
Astuce : Ajoutez votre IP fixe (box maison, bureau) dans la whitelist pour éviter de vous bloquer :
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 VOTRE_IP_PUBLIQUE
Les mises à jour corrigent les failles de sécurité. Un Raspberry Pi obsolète peut être compromis en quelques heures s’il est exposé sur Internet.
Mise à jour manuelle complète
# Mise à jour des paquets
sudo apt update
sudo apt upgrade -y
# Mise à jour système complète (kernel, etc.)
sudo apt dist-upgrade -y
# Nettoyage des anciens paquets
sudo apt autoremove -y
sudo apt autoclean
# Redémarrage si nécessaire
sudo reboot
Mises à jour automatiques (recommandé)
# Installation du paquet de mises à jour automatiques
sudo apt install unattended-upgrades
# Configuration
sudo dpkg-reconfigure -plow unattended-upgrades
# Vérification
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Vérifier les mises à jour disponibles
# Lister les paquets à mettre à jour
apt list --upgradable
# Vérifier si un redémarrage est nécessaire
cat /var/run/reboot-required
# Voir les services à redémarrer
cat /var/run/reboot-required.pkgs
Planning de maintenance pour radioamateurs
# Créer un script de mise à jour
sudo nano /usr/local/bin/update-station.sh
#!/bin/bash
echo "=== Mise à jour station F4HXN ==="
apt update
apt upgrade -y
apt autoremove -y
echo "=== Terminé le $(date) ===" >> /var/log/update-station.log
# Rendre exécutable
sudo chmod +x /usr/local/bin/update-station.sh
# Planifier avec cron (tous les dimanches à 3h du matin)
sudo crontab -e
# Ajoutez :
0 3 * * 0 /usr/local/bin/update-station.sh
Matériel à maintenir à jour :
• Raspberry Pi (Raspbian/Debian)
• Hotspots DMR (Pi-Star)
• Serveurs SDR (WebSDR, OpenWebRX)
• Routeurs OpenWrt
• Proxmox / serveurs virtuels
Perdre votre clé privée = perdre l’accès à vos serveurs. Une sauvegarde régulière est essentielle, mais elle doit être sécurisée !
Localisation de vos clés
# Vos clés privées sont ici :
ls -la ~/.ssh/
# Fichiers importants :
~/.ssh/id_ed25519 # Clé privée (À PROTÉGER !)
~/.ssh/id_ed25519.pub # Clé publique (peut être partagée)
~/.ssh/config # Configuration SSH
~/.ssh/known_hosts # Empreintes serveurs connus
Méthode 1 : Sauvegarde chiffrée sur clé USB
# Créer une archive chiffrée avec GPG
tar czf - ~/.ssh | gpg --symmetric --cipher-algo AES256 > ssh-backup-$(date +%Y%m%d).tar.gz.gpg
# Copier sur clé USB
cp ssh-backup-*.tar.gz.gpg /media/usb-backup/
# Pour restaurer plus tard :
gpg -d ssh-backup-20250208.tar.gz.gpg | tar xz -C ~/
Méthode 2 : Coffre-fort de mots de passe
Utilisez un gestionnaire sécurisé comme :
• Bitwarden (open-source, peut être auto-hébergé)
• 1Password (commercial, supporte les clés SSH)
Méthode 3 : Sauvegarde cloud chiffrée
# Avec rclone vers votre NAS Synology/QNAP ou cloud
# Chiffrement côté client avec rclone crypt
rclone copy ~/.ssh remote-encrypted:backup/ssh/ --exclude "known_hosts"
# Ou avec rsync vers un serveur distant
rsync -avz -e "ssh -p 2222" ~/.ssh/ backup@nas.f4hxn.fr:/backup/ssh/
Créer des clés de secours
# Générer une deuxième paire de clés "rescue"
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_rescue -C "f4hxn-rescue"
# L'ajouter sur tous vos serveurs
ssh-copy-id -i ~/.ssh/id_ed25519_rescue.pub pi@station1
ssh-copy-id -i ~/.ssh/id_ed25519_rescue.pub pi@station2
# Stocker cette clé rescue dans un endroit différent
ATTENTION :
• Ne stockez JAMAIS vos clés privées sur le cloud en clair
• N’envoyez JAMAIS vos clés privées par email
• Ne commitez JAMAIS de clés dans Git/GitHub
• Utilisez TOUJOURS une passphrase sur vos clés privées
Bonnes pratiques :
• Sauvegardez dans au moins 2 endroits différents
• Testez la restauration de vos sauvegardes
• Renouvelez vos clés tous les 2-3 ans
• Documentez où sont vos sauvegardes (coffre-fort physique, testament numérique)
Pour aller plus loin
SSH est un outil puissant qui ouvre de nombreuses possibilités pour les radioamateurs modernes. Que ce soit pour administrer votre hotspot DMR, accéder à votre station HF depuis n’importe où dans le monde, ou gérer votre infrastructure SDR, maîtriser SSH est devenu indispensable.
Ressources complémentaires :
- Documentation SSH officielle :
man ssh - Configuration Hamlib pour contrôle radio distant
- Tutoriels WireGuard VPN pour radioamateurs
- Guides Pi-Star et MMDVM
73 de F4HXN !


