J'ai une question concernant le tunneling ssh. J'ai lu cet article
Je voudrais faire fonctionner le transfert X et exécuter certaines applications X à la maison et les afficher sur un système distant:
ssh -X -R 5555:localhost:22 [email protected] -N
Sur la télécommande:
ssh -X -p 5555 [email protected]
Puis à la maison:
//configure sshd to listen on 5555
ssh [email protected]
//here run some app
Cela devrait-il fonctionner?
ssh
x11
ssh-tunneling
xforwarding
wawa235
la source
la source
Réponses:
J'ai dessiné quelques croquis
La machine sur laquelle la commande ssh tunnel est saisie est appelée «votre hôte» .
introduction
local:
-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
signifie: connectez-vous avec ssh àconnectToHost
, et transférez toutes les tentatives de connexion au port local sur la machine appelée , accessible depuis la machine.sourcePort
onPort
forwardToHost
connectToHost
éloigné:
-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
signifie: connectez-vous avec ssh àconnectToHost
et transférez toutes les tentatives de connexion au port distantsourcePort
versonPort
sur la machine appeléeforwardToHost
, accessible depuis votre machine locale.Votre exemple
Eh bien, si vous souhaitez uniquement faire fonctionner le transfert X, c'est-à-dire exécuter certaines applications X sur l'ordinateur à la maison et les afficher sur un système distant (appelons-le un ordinateur de travail, car il peut être sur votre lieu de travail), alors vous pouvez pas besoin du tout d'un tunnel ssh.
Démarrer des applications X sans tunnel
Pouvez-vous simplement passer de l'ordinateur de travail à votre ordinateur personnel? Si c'est le cas, lorsque vous êtes assis sur l'ordinateur de travail et que vous souhaitez démarrer une application X qui s'exécute sur votre ordinateur personnel mais s'affiche sur votre ordinateur de travail , vous devez taper (sur l'ordinateur de travail):
ssh -X homeuser @ homecomputer firefox
Cela démarrera Firefox sur votre ordinateur personnel et l'affichera sur la machine où vous avez tapé cette commande, par exemple votre ordinateur de travail.
L'ordinateur caché a besoin d'un tunnel
Ceci est l' image numéro 3 de mes croquis. Plusieurs fois, l'ordinateur domestique n'est pas accessible directement depuis Internet, car il est derrière un pare-feu ou caché via NAT (à partir d'un routeur). Ensuite, vous pouvez utiliser un tunnel.
Sur votre ordinateur personnel bleu (
yourhost
), vous tapez:où
5555
est le port vert et22
ist le port rose dans l'image.Si vous êtes maintenant au travail, sur le
remotehost
, et que vous vous connectez au port vert5555
, votre connexion est tunnelée / transmise au port rose de votre ordinateur personnellocalhost
(c'est-à-dire votre ordinateur domestique bleu lui-même). Vous devez maintenant taper sur votre ordinateur de travail:qui démarrera Firefox sur votre ordinateur personnel (
yourhost
) et l'affichera sur la machine sur laquelle vous avez tapé cette commande, par exemple votre ordinateur professionnel (remotehost
).la source
Vous devez spécifier l'affichage distant que vous souhaitez transférer. Sur la télécommande:
Pour faire défiler l'
:0
affichage.Ensuite, dans ce shell (qui fonctionne maintenant sur votre machine domestique), exécutez:
pour savoir ce qu'est l'affichage renvoyé. Ce sera quelque chose comme
localhost:10
, ce qui signifie que vous devez établir une connexion TCP sur le port 6010 pour vous connecter à l'écran:0
de la machine distante (:0
c'est-à-dire se connecter à une socket de domaine Unix dans quelque chose comme/tmp/.X11-unix
)Ensuite, pour qu'une application sur votre machine s'affiche sur l'écran du serveur distant, il suffit de leur dire d'utiliser
localhost:10
:par exemple.
Notez que c'est un tunnel sur un tunnel.
la source