Aller au contenu

Connecter le mobile à SSH de n'importe où avec WireGuard et Termius

Rogelio Guerra Riverón
Auteur
Rogelio Guerra Riverón
Construction de ma propre infrastructure web depuis zéro. Je documente chaque étape : serveurs, réseaux, conteneurs et tout ce qui se présente.

Le problème
#

J’avais besoin d’accéder à mon serveur domestique par SSH depuis mon téléphone sans l’exposer directement à internet. Les options évidentes étaient mauvaises : ouvrir le port 22 au monde entier est un suicide, et faire confiance à des apps tierces avec accès root ne me convenait pas. La solution qui a fonctionné : WireGuard + Termius.

Pourquoi cette combinaison
#

WireGuard est léger, rapide et consomme peu de batterie sur les téléphones. Termius est un client SSH soigné qui gère bien les clés privées. Ensemble, tu as un accès sécurisé sans complications.

Étape 1 : Installation et configuration de WireGuard sur le serveur
#

J’ai installé WireGuard sur mon serveur (Debian 12) :

sudo apt update
sudo apt install wireguard wireguard-tools

J’ai généré les clés publique et privée du serveur :

cd /etc/wireguard
sudo wg genkey | tee privatekey | wg pubkey > publickey

J’ai créé le fichier de configuration /etc/wireguard/wg0.conf :

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = [CONTENIDO DE privatekey]
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = [CLAVE PÚBLICA DEL MÓVIL - GENERARLA DESPUÉS]
AllowedIPs = 10.0.0.2/32

J’ai activé le service :

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

J’ai ouvert le port UDP 51820 dans le pare-feu (dans mon cas, le routeur) :

sudo ufw allow 51820/udp

Étape 2 : Configuration du client sur le téléphone
#

J’ai installé WireGuard depuis le Play Store (Android) ou l’App Store (iOS).

J’ai généré les clés du téléphone sur le serveur :

wg genkey | tee mobile_privatekey | wg pubkey > mobile_publickey

J’ai créé le fichier de configuration pour le téléphone :

[Interface]
Address = 10.0.0.2/24
PrivateKey = [CONTENIDO DE mobile_privatekey]
DNS = 8.8.8.8

[Peer]
PublicKey = [CLAVE PÚBLICA DEL SERVIDOR]
Endpoint = [IP_PÚBLICA_SERVIDOR]:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25

J’ai exporté ce fichier en QR ou je l’ai passé par USB au téléphone. WireGuard l’importe directement.

J’ai activé la connexion dans WireGuard du téléphone et j’ai vérifié la connectivité :

wg show

Étape 3 : Configuration de SSH dans Termius
#

Dans Termius j’ai créé une nouvelle connexion :

  • Hôte : 10.0.0.1 (l’adresse IP interne du serveur dans WireGuard)
  • Port : 22 (SSH standard, n’a pas besoin d’être ouvert à l’extérieur)
  • Utilisateur : mon utilisateur habituel
  • Authentification : Clé privée SSH

J’ai importé ma clé privée SSH depuis les fichiers du téléphone. Termius la gère sans exposer les fichiers.

Étape 4 : Tests et ajustements
#

Je me suis connecté à WireGuard depuis le téléphone. J’ai ouvert Termius et je me suis connecté au serveur. Ça a marché du premier coup.

La latence est imperceptible. La consommation de batterie de WireGuard est minime (à peine 2-3 % en 8 heures en veille).

Détails de sécurité qui importent
#

  • Le serveur SSH n’est jamais exposé à internet
  • WireGuard utilise une cryptographie moderne (protocole Noise)
  • Les clés privées ne voyagent jamais sur le réseau
  • Le trafic SSH à l’intérieur du tunnel est doublement chiffré

Ce que je changerais
#

Rien. Cette configuration fonctionne depuis des mois sans problème. La seule amélioration serait d’utiliser des adresses DNS dynamiques si mon adresse IP publique change, mais c’est un autre article.


Mise à jour : Cette même méthode fonctionne pour connecter d’autres appareils (ordinateur portable, tablette). Il suffit de générer de nouvelles clés et d’ajouter plus de peers dans WireGuard.

Équipement recommandé
#

Liens d’affiliation. Pas de coût supplémentaire pour toi.