Secure Shell
Tunnels inverses
Recherche…
OpenSSH
La création d'un tunnel ssh inversé ne prend qu'un seul commutateur -R vers la commande d'origine.
Ligne de commande
Supposons que vous vous connectiez à example.com tant guest utilisateur à l'aide d'une commande ssh [email protected] . Ouvrir le tunnel inverse peut ressembler à ceci:
ssh -R 2222:localhost:22 [email protected]
Il ouvrira un port 2222 sur le serveur distant (interface de bouclage uniquement) et chaque connexion à ce port sera transmise au serveur ssh de votre ordinateur local (port 22 ).
Cela suppose également que vous avez autorisé les options AllowTcpForwarding yes et PermitOpen any dans votre sshd_config sur votre serveur. Sinon, il échouera avec une erreur
open failed: administratively prohibited: open failed
Si vous souhaitez autoriser le port transféré à être accessible sur d'autres adresses réseau (que localhost ), vous devez également autoriser GatewayPorts yes et utiliser une adresse IP ou un nom d'hôte ou une adresse IP:
ssh -R 2222:example.com:22 [email protected]
Configuration
De plus, vous pouvez spécifier le transfert de votre port distant dans votre ~/.ssh/config pour éviter de taper la même ligne chaque fois que vous vous connectez. Une bonne pratique pourrait être de configurer également un alias pour l'hôte, qui aura ce transfert, si vous vous connectez fréquemment à votre hôte et que vous ne voulez pas lancer le transfert de port à chaque fois:
Host example.com-R
Hostname example.com
User guest
RemoteForward 2222 localhost:22
puis créez un transfert de port à distance en utilisant simplement ssh example.com-R
Courir en arrière-plan
La redirection de port peut être simplement exécutée en arrière-plan à l'aide des commutateurs -N (ne pas exécuter la commande à distance, uniquement le transfert), -f (aller en arrière-plan après authentification), -T (désactiver l'allocation TTY distante). Mettre tous ensemble:
ssh -NTfR 2222:localhost:22 [email protected]