Le serveur est durci, mais SSH répond encore à tout internet. Cette page monte le chemin privé qui va le remplacer : WireGuard sur le serveur, sur un seul port UDP, et ton Mac branché dessus avec une clé générée sur chaque appareil. À la fin, ssh passe par le tunnel. L'ancienne porte reste ouverte pendant toute la page : on ne la ferme qu'à la page 2, une fois le tunnel prouvé.
Avant de commencer
$ssh vps 'test -x /usr/sbin/ufw && echo ready'ready
Installer WireGuard sur ton Mac
Installe WireGuard depuis le Mac App Store (éditeur : WireGuard Development Team). Ouvre-le, puis + en bas à gauche → Add Empty Tunnel…. Nomme-le . L'app génère une paire de clés et affiche la clé publique en haut de l'éditeur.
Copie cette clé publique dans le champ Clé publique du Mac du panneau des valeurs, puis enregistre le tunnel tel quel. Il est incomplet : la partie 3 le termine. macOS demande d'autoriser l'ajout d'une configuration VPN : accepte.
Installer WireGuard sur le serveur
Dans ta session ssh vps, installe les outils et génère la clé du serveur dans un fichier que seul root peut lire :
$sudo apt update && sudo apt install -y wireguard-tools$sudo install -d -m 700 /etc/wireguard$sudo sh -c 'umask 077 && wg genkey > /etc/wireguard/wg0.key'Écrire la configuration du serveur
Crée /etc/wireguard/wg0.conf avec sudo vim :
[Interface]Address = /24ListenPort = PostUp = wg set %i private-key /etc/wireguard/%i.key[Peer]# macPublicKey = AllowedIPs = /32Puis restreins ses droits : sudo chmod 600 /etc/wireguard/wg0.conf.
Ouvrir le port et démarrer
Ouvre le port UDP dans le pare-feu, démarre l'interface et fais-la remonter à chaque démarrage, puis affiche la clé publique du serveur :
$sudo ufw allow /udp$sudo systemctl enable --now wg-quick@wg0$sudo wg show wg0 public-keyCopie la clé affichée dans le champ Clé publique du serveur du panneau des valeurs.
$ssh vps systemctl is-active wg-quick@wg0active
Brancher le Mac
Dans l'app WireGuard du Mac, sélectionne le tunnel , Edit. Garde la première ligne PrivateKey = … et ajoute ceci en dessous :
Address = /32[Peer]PublicKey = AllowedIPs = /32Endpoint = :Enregistre, puis Activate. Depuis un terminal :
$ping -c 3 | grep -o '3 packets received'3 packets received
Si le ping ne répond pas
Dans l'ordre :
- Sur le serveur,
sudo wg show: le pairmaca-t-il unlatest handshake? Sinon, compare les deux clés publiques, caractère par caractère. sudo ufw statusdoit montrer/udp ALLOW.- Dans l'app, le tunnel est-il bien Active ? Les compteurs
Data receivedaugmentent-ils ? - Le Network Firewall d'OVH, si tu l'as activé sur l'IP, filtre avant le VPS : ajoute une règle UDP pour
. - Un réseau qui bloque l'UDP sortant (certains Wi-Fi publics) : essaie depuis le partage de connexion de ton téléphone.
Passer par le tunnel
Ajoute à ton Mac un raccourci ssh qui vise l'adresse du serveur dans le tunnel, puis connecte-toi avec :
$touch ~/.ssh/config && chmod 600 ~/.ssh/config$grep -q '^Host $' ~/.ssh/config || printf '\nHost \n HostName \n Port \n User \n IdentityFile \n IdentitiesOnly yes\n AddKeysToAgent yes\n UseKeychain yes\n' >> ~/.ssh/config$ssh echo via-wireguardssh ne connaît pas encore cette adresse et demande de confirmer la clé d'hôte. Avant de répondre yes, compare l'empreinte affichée avec celle du serveur, lue par l'ancienne porte :
$ssh vps ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub$ssh echo via-wireguardvia-wireguard
Terminé
| Quoi | Avant | Après cette page |
|---|---|---|
| Chemins vers le serveur | ssh vps, par internet | ssh vps et ssh , par le tunnel |
| Ports ouverts | /tcp | /tcp et /udp |
| Appareils dans le tunnel | aucun | ton Mac, chacun avec sa clé |
Page suivante : Fermer la porte publique. Elle retire /tcp d'internet, ne garde SSH que sur le tunnel, et prouve que tout revient après un redémarrage.