web-dev-qa-db-fra.com

Différences entre ssh -L à -D

J'essaie de comprendre les différences entre ssh -L et -D. Y a-t-il autre chose à part que -D n'est que SOCKS

Merci!

48
Marvin

ssh -L ouvre un port local. Tout ce que vous envoyez à ce port passe par la connexion ssh et part par le serveur. Si vous le faites, par exemple, ssh -L 4444:google.com:80, si vous ouvrez http://localhost:4444 sur votre navigateur, vous verrez en réalité la page de Google.

ssh -D ouvre un port local, mais il n’a pas de point de terminaison spécifique comme avec -L. Au lieu de cela, il prétend être un proxy SOCKS. Si vous ouvrez, par exemple, ssh -D 7777, lorsque vous indiquez à votre navigateur d’utiliser localhost:7777 comme proxy SOCKS, tout ce que votre navigateur demande passe par le tunnel ssh. Pour l'Internet public, c'est comme si vous naviguiez depuis votre serveur ssh plutôt que depuis votre ordinateur.

47
Kovensky

Dans SSH, -D spécifie une redirection de port "dynamique" au niveau de l'application locale.

SSH -D [bind_address:]port

Spécifie une redirection de port "dynamique" au niveau de l'application locale. Cela fonctionne en allouant un socket pour écouter le port sur le côté local, éventuellement lié à l'adresse bind_address spécifiée. Chaque fois qu'une connexion est établie à ce port, la connexion est transférée sur le canal sécurisé et le protocole d'application est ensuite utilisé pour déterminer où se connecter à partir de la machine distante. Actuellement, les protocoles SOCKS4 et SOCKS5 sont pris en charge et SSH agira comme un serveur SOCKS. Seul root peut transférer des ports privilégiés. Les transferts de ports dynamiques peuvent également être spécifiés dans le fichier de configuration.

Les adresses IPv6 peuvent être spécifiées avec une syntaxe alternative: port [bind_address /] ou en mettant l'adresse entre crochets.

Seul le superutilisateur peut transférer des ports privilégiés. Par défaut, le port local est lié conformément au paramètre GatewayPorts. Toutefois, une adresse bind_address explicite peut être utilisée pour lier la connexion à une adresse spécifique. Bind_address de "localhost" indique que le port d’écoute doit être lié à un usage local uniquement, tandis qu’une adresse vide ou "*" indique que le port doit être disponible à partir de toutes les interfaces.

De plus, ssh -L Spécifie que le port donné sur l'hôte local (client) doit être transféré à l'hôte donné et au port situé du côté distant.

SSH -L [bind_address:]port:Host:hostport

Spécifie que le port donné sur l'hôte local (client) doit être transféré à l'hôte donné et au port côté distant. Cela fonctionne en allouant un socket pour écouter le port sur le côté local, éventuellement lié à l'adresse bind_address spécifiée. Chaque fois qu'une connexion est établie à ce port, la connexion est transmise via le canal sécurisé et une connexion est établie au port hôte hostport à partir de la machine distante. Les transferts de port peuvent également être spécifiés dans le fichier de configuration. Les adresses IPv6 peuvent être spécifiées avec une syntaxe alternative: [adresse_bind /] port/hôte/hostport ou en plaçant l'adresse entre crochets.

Seul le superutilisateur peut transférer des ports privilégiés. Par défaut, le port local est lié conformément au paramètre GatewayPorts. Toutefois, une adresse bind_address explicite peut être utilisée pour lier la connexion à une adresse spécifique. Bind_address de "localhost" indique que le port d’écoute doit être lié à un usage local uniquement, tandis qu’une adresse vide ou "*" indique que le port doit être disponible à partir de toutes les interfaces.

4
Mughil