# Tunnel SSH : introduction à la redirection de ports SSH

Les tunnels SSH vous permettent d’accéder à des sites Internet qui ne sont pas disponibles depuis votre réseau. Au lieu de naviguer directement vers le site depuis votre réseau, l’utilisation d’un tunnel SSH (également appelée redirection de port) vous fait emprunter un détour via un serveur SSH.

## Qu’est-ce qu’un tunnel SSH ?

À l’instar des vrais tunnels, un tunnel SSH a pour rôle de **relier un point A à un point B**. Le point A est un ordinateur qui se situe, en général, au sein d’un réseau non sécurisé. Le point B est un serveur ou une adresse Internet à laquelle vous ne pouvez pas ou ne voulez pas avoir accès depuis votre réseau. Les tunnels SSH font office de **liens entre différents serveurs** et connectent les [ports TCP](https://www.ionos.fr/digitalguide/serveur/know-how/ports-tcpet-udp/) de deux ordinateurs l’un avec l’autre. N’importe quel port TCP peut être redirigé via l’utilisation d’un tunnel SSH, ce qui explique pourquoi on appelle également ce processus redirection de port SSH ou redirection SSH.

Vous pouvez utiliser n’importe quel serveur ou presque en tant que serveur SSH. Par exemple, un [serveur SSH Raspberry Pi](https://www.ionos.fr/digitalguide/serveur/configuration/raspberry-pi-activer-le-serveur-ssh/) fera très bien l’affaire.

---

### Conseil

Vous êtes toujours à la recherche du serveur idéal ? Ne cherchez plus ! Découvrez le [serveur Cloud de IONOS](https://www.ionos.fr/cloud/serveurs-cloud "Serveurs Cloud avec IONOS") et trouvez enfin le serveur adapté à vos besoins.

---

Mais que transporte exactement un tunnel SSH ? Certains [protocoles TCP](https://www.ionos.fr/digitalguide/serveur/know-how/presentation-de-tcp/) peuvent être utilisés en toute sécurité avec un tunnel SSH, et le protocole email [SMTP](https://www.ionos.fr/digitalguide/email/aspects-techniques/smtp/) a également recours à des tunnels SSH. Le SSH fait en sorte que les données transportées dans le tunnel soient sûres.

## Les tunnels SSH : quels usages ?

Il existe différents usages pour la redirection de port en SSH (acronyme de « secure shell », « [shell sécurisé](https://www.ionos.fr/digitalguide/serveur/outils/protocole-ssh/)» en français). En règle générale, la redirection de port SSH est utilisée pour créer une **connexion chiffrée** entre un ordinateur local (l’hôte local) et un ordinateur distant. L’utilisation de ce réseau virtuel permet d’outrepasser certaines restrictions d’accès. Vous aurez l’air d’être sur ce réseau, alors qu’en réalité vous vous contenterez d’y accéder à l’aide d’un tunnel SSH. Cela ressemble à un réseau privé virtuel (VPN) mais s’en distingue cependant. Prenez garde à ne cependant pas confondre les deux.

Si vous transportez des données issues de services qui ont recours à un protocole chiffré, vous pouvez utiliser la redirection SSH pour chiffrer le transfert de données. Un **SSH File Transfer Protocol** (« Protocol de Transfert de Fichier SSH »), [SFTP](https://www.ionos.fr/digitalguide/serveur/know-how/sftp-ssh-file-transfer-protocol/) en abrégé, sera utilisé à cette fin. Les tunnels SSH offrent également une sécurité accrue lorsque vous vous aventurez au sein de réseaux que vous ne connaissez pas, par exemple ceux d’un hôtel ou d’un café. Les [clés SSH](https://www.ionos.fr/digitalguide/serveur/securite/generer-des-cles-ssh-pour-votre-connexion-reseau/) utilisent un [chifrement asymétrique](https://www.ionos.fr/digitalguide/serveur/securite/la-cryptographie-asymetrique/) et offrent un niveau de sécurité encore plus élevé.

Il convient de noter que le recours aux tunnels SSH est fréquemment utilisé par les hackers, qui créent des **backdoors à l’intérieur des réseaux internes** de manière à ce que des intrus puissent facilement accéder aux données.

---

### Conseil

Vous voulez utiliser le SSH à son plein potentiel pour votre site ? Le [package d’hébergement Web](https://www.ionos.fr/hebergement/hebergement-web "Hébergement Web avec domaine inclus avec IONOS") de IONOS comprend un certificat SSL Wildcard et vous fournit tout ce dont vous avez besoin ! Si vous souhaitez juste améliorer votre site Internet, jetez un œil aux [certificats SSL](https://www.ionos.fr/securite/certificat-ssl "Certificats SSL - Achetez des certificats SSL pour votre site avec IONOS") proposés par IONOS. Pour profiter d’une sécurité accrue pour votre site, par exemple grâce à l’authentification à deux facteurs, utilisez alors la [protection de domaine](https://www.ionos.fr/domaine/domain-guard "Protection de domaine – Sécurité complète pour vos domaines avec IONOS") de IONOS.

---

## Utiliser des tunnels SSH sous Linux

Plusieurs options s’offrent à vous pour créer un tunnel SSH.

### La redirection de port locale SSH

La méthode la plus répandue pour mettre en place un tunnel SSH est la **redirection de port local**. Ceci implique d’accéder aux ressources d’un réseau local depuis votre PC local en redirigeant un port depuis votre ordinateur vers un porte situé sur le serveur SSH. Le port peut ensuite être redirigé vers un port de l’ordinateur cible.

Pour configurer une redirection de port local, utilisez la commande du terminal ci-dessous sur les systèmes d’exploitation basés sur Unix ou macOS.

```none
ssh -L local_port: remote_address: remote_port username@server.com
```

Pour commencer, vous devez définir quel port vous souhaitez transférer (local\_port). Vous pouvez utiliser **n’importe quel numéro de port** supérieur à 1 024. Les ports comportant des numéros plus bas sont privilégiés et ne sont accessibles que par la racine. Ensuite, entrez l’adresse IP du serveur cible (remote\_address) et vos identifiants (remote\_port).

Illustrons cela par un exemple. Imaginons que vous souhaitez vous connecter à un serveur situé au sein de votre bureau et dont l’adresse IP est *123.234.1.111* à l’intérieur du réseau de l’entreprise. Vous pouvez accéder au serveur SSH de votre bureau à l’aide de *ssh.test.com*. Votre nom d’utilisateur sera « Testuser ». La commande que vous utiliserez pour configurer le tunnel SSH pour le port 1234 ressemblera à :

```none
ssh -L 8888: 123.234.1.111: 1234 Testuser@ssh.test.com
```

Après avoir exécuté la commande, vous aurez accès au serveur de l’entreprise via le port 8888. Si le serveur permet l’accès Web, vous pourrez également accéder au serveur du bureau via *http://localhost:8888*. Les données que vous enverrez au port 8888 sur votre PC seront transférées au port 1234 sur l’ordinateur cible à l’aide du tunnel SSH.

### La redirection de port distant SSH

La redirection de port à distance connecte un port issu du serveur SSH à un port de l’ordinateur client, lequel peut ensuite établir une connexion vers le PC cible. Ce type de redirection de port est, en général, utilisé pour **fournir un accès aux services internes à une personne externe**. La commande du terminal pour configurer un tunnel SSH distant se présente comme suit :

```none
ssh -R remote_port: target_address: target_port user@ssh_server_address
```

Si vous souhaitez écouter un port dont le numéro de port est, par exemple, 8080, et envoyer les données au port numéro 3000 de votre PC local, la commande ressemblera à la suivante :

```none
ssh -R 8080: 127.0.0.1:3000 user@remote.host
```

Dans l’exemple ci-dessus, le serveur SSH a pour adresse *remote.host*. Il est désormais possible d’accéder aux données que vous mettez en tunnel depuis l’extérieur en entrant cette adresse dans un navigateur, en y ajoutant le numéro de port :

```none
remote.host:8080
```

Si vous êtes confronté à des problèmes lors de la mise en place d’une redirection de port distant, ceci peut être dû à la **configuration de votre serveur SSH**. La redirection de port distant est en général **désactivée** par défaut. Vous pouvez modifier cela en activant **GatewayPorts** dans votre fichier de configuration de serveur SSH. Pour ce faire, ouvrez le fichier et définissez « GatewayPorts » sur « yes ».

### La redirection de port dynamique SSH

Une troisième manière d’avoir recours aux tunnels SSH implique **la redirection de port dynamique**, laquelle vous permet d’utiliser une prise sur votre PC local qui sera utilisée comme une sorte de proxy SOCKS. Toutes les applications qui ont recours à un proxy SOCKS se connecteront alors au serveur SSH et feront passer leur trafic par le tunnel. Ce type de redirection de port est souvent employé pour **mettre en tunnel du trafic de navigateur Web**.

Pour configurer une redirection dynamique de port, utilisez la commande de terminal suivante :

```none
ssh -D [local_ip_address:]local_port user@ssh_server_address
```

Si vous n’entrez pas d’adresse IP locale, l’adresse IP *127.0.0.1* ([localhost](https://www.ionos.fr/digitalguide/serveur/know-how/localhost/) sera utilisée automatiquement. Si, par exemple, vous configurez un tunnel SOCKS pour le port 9090 à l’aide de l’adresse *remote.host*, la commande ressemblera à la suivante :

```none
ssh -D 9090 -N -f user@remote.host
```

Une fois que vous aurez configuré le proxy SOCKS, assurez-vous de configurer correctement l’application qui utilise le proxy.

## Les tunnels SSH et Windows

Vous pouvez également configurer des tunnels SSH sous Windows. Étant donné que l’accès au terminal n’est pas aussi centralisé sous Windows, vous aurez à cœur d’utiliser l’un des multiples **outils pratiques disposant d’une interface utilisateur**, tels que [PuTTY](https://www.putty.org/ "Télécharger PuTTY - un client SSH et telnet gratuit pour Windows"). Ces derniers font de la configuration d’un tunnel SSH un vrai jeu d’enfant.

Une fois que vous aurez téléchargé et installé PuTTY, ouvrez l’outil. Dans le menu Démarrer, sous « Hostname », saisissez l’adresse IP du serveur SSH auquel vous souhaitez vous connecter. Rendez-vous ensuite dans « Connection/SSH/Tunnels », où vous pourrez entrer le port source et le port cible dans les champs « Source Port » et « Destination ». Enfin, cliquez sur le bouton « Ouvrir » pour établir la connexion. Vous devriez à présent être en mesure d’accéder au port sur un navigateur en utilisant *127.0.0.1:port\_number.*

## Les tunnels SSH inversés

Pour accéder à des ordinateurs à l’aide d’une adresse IP privée, vous aurez besoin d’un tunnel SSH inversé. Avec un tunnel SSH inversé, l’ordinateur distant auquel vous souhaitez accéder peut créer une connexion vers votre PC local. Vous pourrez ensuite utiliser cette connexion pour créer une nouvelle connexion du PC local à l’ordinateur distant.

La commande suivante configurera un tunnel SSH depuis l’ordinateur distant :

```none
ssh -Nf -R 2222:localhost:22 user@local.computer
```

L’ordinateur local peut ensuite utiliser la commande suivante pour se connecter à l’ordinateur distant :

```none
ssh localhost -p 2222
```


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/securite/les-tunnels-ssh-comment-les-utiliser/](https://www.ionos.fr/digitalguide/serveur/securite/les-tunnels-ssh-comment-les-utiliser/) for AI/LLM consumption.