J'essaie de faire quelque chose d'assez inhabituel (pour moi de toute façon) avec SSH et je ne peux pas le faire fonctionner, j'espère que vous pourrez aider.
Je souhaite établir une connexion à un serveur distant à partir de mon Mac à l'aide de SSH. Jusqu'ici tout va bien. Maintenant, le bit délicat, avec la connexion au serveur distant établie, je veux ensuite initier une connexion du serveur distant BACK à la machine locale. Je sais, fou. Fondamentalement, je dois parcourir ces cerceaux pour pouvoir parcourir le serveur distant, puis renvoyer les informations de fichier à ma machine locale afin qu'elles puissent être traitées par une application sur la machine locale. J'espère que cela a du sens!
Pour le moment, si je retourne SSH sur la machine locale une fois que je suis connecté au serveur distant, le terminal restera assis là à tourner en rond, aucune erreur même avec -v.
J'essaie de découvrir où je devrais appeler en regardant la sortie de la variable $ SSH_CLIENT, mais je suis sur une connexion Internet vanille standard (pas d'adresse IP statique) Je pense que cela pourrait être la cause du problème.
Choses que j'ai établies: je suis sur un Mac (OS X 10.6.4) et j'ai la connexion à distance activée dans les préférences système / partage Si j'essaye et SSH dans mon mac à partir d'une autre machine sur LAN, je ne peux pas me connecter sans problème. Si j'essaye et SSH dans un autre serveur (pas ma machine locale) de mon serveur distant, je peux me connecter sans problème.
Donc, les faits ci-dessus me font penser que je suis clair en ce qui concerne les pare-feu, etc. sur les machines locales et distantes.
Je suis sûr que je dois manquer quelque chose de tout à fait évident ici, mais pour la vie de moi, je ne peux pas m'en occuper.
Toute aide, lien ou coup de pouce général dans la bonne direction serait grandement apprécié!
la source
Réponses:
Si lorsque vous vous reconnectez à votre section locale, cela vous permet de vous connecter avant de raccrocher, ce n'est pas la réponse. Si vous n'allez pas jusque-là, vous ne retournerez probablement pas sur votre Mac (soit vous n'irez nulle part ou vous ne frapperez pas SSH sur une passerelle). Essayez un tunnel inverse (il faudra que GatewayPorts soit défini sur On dans sshd_config sur votre serveur, mais je pense que c'est par défaut):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
cela devrait vous permettre de vous connecter au serveur normalement, mais aussi d'ouvrir un tunnel afin que vous puissiez vous reconnecter. port 2000 (tout port supérieur à 1024 devrait fonctionner), donc
you@yourserver$ ssh -p2000 user@localhost
EDIT: le nom d'hôte a été changé en localhost
la source
Votre machine locale est-elle accessible depuis le serveur? Pouvez-vous le cingler? Je demande cela parce que ce que vous faites devrait fonctionner si votre machine est accessible. Votre serveur est sur Internet ou en LAN, même sous-réseau?
Quoi qu'il en soit, si vous avez seulement besoin de modifier un fichier, pourquoi ne pas simplement utiliser scp pour copier le fichier sur votre machine locale? Vous pouvez utiliser ssh pour rechercher le fichier sur le serveur distant et lorsque vous avez son chemin, entrez dans votre machine locale (dans un autre terminal):
Pour remettre le fichier, scp change de nouveau les chemins.
Obs: vous n'avez pas besoin de la connexion ssh initiale pour utiliser scp - il en créera une nouvelle
C'est ci-dessus si vous devez y accéder dans le terminal. Sur linux (et certainement sur Mac mais je ne sais pas comment le faire), vous pouvez monter un emplacement distant ssh dans les réseaux et utiliser la connexion comme vous utilisez un disque local (c'est sftp et la connexion est sous la forme:
sftp://user@server:/path/to/mount
et je suppose que c'est ce dont vous avez besoin au lieu d'une connexion de terminal distant afin que vous puissiez modifier le fichier directement avec l'application Mac.la source
Vous pouvez également y jeter un œil
sshfs
(vous avez besoin de MacFuse pour cela). Cela vous permet de monter des répertoires sur la machine distante et d'y accéder comme des dossiers normaux sur votre machine. En plus de cela, vous pouvez toujoursssh
entrer dans la machine et créer / rechercher les fichiers dont vous avez besoin. Les transférer serait alors aussi simple que de transférer des fichiers locaux.la source