ssh -D
peut créer un port de chaussettes sur la machine locale, qui transmet le trafic à la télécommande, puis à d'autres endroits.
ssh -L port:host:hostport
, écouter le port sur la machine locale, transmettre le trafic à "host: hostport" du point de vue de la machine distante.
ssh -R port:host:hostport
est la contrepartie de ssh -L
, qui écoute le port sur la machine distante et transmet le trafic à "host: hostport" du point de vue de la machine locale.
Mais quelle est la contrepartie de ssh -D
, c'est-à-dire, comment ouvrir un port de chaussettes sur une machine distante, qui passera le trafic au local, puis à d'autres endroits?
Réponses:
Avec
-D
&-L
vous avez un moyen de communiquer dans les deux cas entre les deux machines.Alors...
-R
pour créer un port d'écoute sur la machine distante pointé vers le sshd de la machine locale.-D
sur la machine distante, dirigée vers le port que vous avez créé ci-dessus.Je "pense" que le fait de remplir ce qui suit le fera fonctionner ...
ssh remotehost -R remoteport:localhost:localport "ssh -D 9050 localhost -p remoteport"
'
remotehost
', 'remoteport
' et 'localport
' dans les points ci-dessus doivent être modifiés. Un proxy de chaussettes sera formé sur 9050.la source
Peut être réalisé de manière transparente avec cet extrait dans ~ / .ssh / config:
Détails
Nous voulons un DynamicForward inversé. Ceci est réalisé en utilisant deux commandes ssh:
ssh -D 3128 localhost
ssh -R 3128:localhost:3128 target
De cette façon, la cible dispose d'un tunnel SOCKS vers le client SSH.
Ce que j'ai fait, c'est d'utiliser la manière classique de chaîner ssh pour atteindre une cible distante via des hôtes intermédiaires afin que la création du tunnel SOCKS soit gérée de manière transparente lors de la connexion à la cible. La première astuce ProxyCommand + nc est obligatoire car -W implique ClearAllForwardings.
la source
Il n'y a aucune possibilité de fournir un tunnel inverse de chaussettes avec OpenSSH, vous devez donc exécuter la commande ssh fournissant le proxy de chaussettes sur la machine "distante".
Si la machine distante ne peut pas ssh dans la machine locale, créez d'abord une connexion ssh de local à distant qui transfère le port 22 à par exemple 2222. Ensuite, la machine distante peut ssh dans la machine locale sur le port 2222.
la source
depuis OpenSSH 7.6
ssh (1): ajoute la prise en charge du transfert dynamique inverse. Dans ce mode, ssh agira comme un proxy SOCKS4 / 5 et transmettra les connexions aux destinations demandées par le client SOCKS distant. Ce mode est demandé à l'aide de la syntaxe étendue pour les options -R et RemoteForward et, parce qu'il est implémenté uniquement sur le client, ne nécessite pas la mise à jour du serveur pour être pris en charge.
https://www.openssh.com/txt/release-7.6
la source
ssh -R 127.0.0.3:1080 remote
), vous pouvez actuellement lier un proxy SOCKS inversé uniquement à un port.