Ce que vous voudriez faire, c'est ssh DEPUIS votre "serveur Linux" VERS quelque chose à l'extérieur, comme "mon_autre_serveur" ou quelque chose d'autre auquel les deux serveurs peuvent accéder.
Vous utiliseriez le transfert de port distant ssh.
[[email protected]_server]$ ssh -R8022:localhost:22 my_other_server.com
Explication :Connectez-vous à my_other_server et ouvrez le port 8022 qui me sera renvoyé sur le port 22.
À partir de my_other_server.com, vous pourrez vous connecter en ssh à localhost sur le port 8022 et faire transférer votre trafic vers linux_server en se superposant sur le tunnel linux_server -> my_other_server [[email protected]_server]$ ssh -p8022 localhost
Explication :Connectez-vous à moi-même sur le port 8022 qui est transmis à linux_server
Si vous rencontrez des problèmes avec l'abandon du tunnel linux_server -> my_other_server initial, vous pouvez créer un script pour le garder ouvert, ajuster les paramètres keepalive ou utiliser autossh.
Cette réponse est basée sur celle acceptée, mais en ajoutant les détails qui m'ont permis de le faire. Je m'excuse pour l'explication piétonne, car ce n'est pas du tout de mon expertise.
Supposons que vous ayez deux ordinateurs, A
et B
. Vous voulez ssh
à partir de A
à B
, et vous ne pouvez effectuer aucune redirection de port dans les routeurs qui leur sont connectés.
Comme l'indique la réponse acceptée, vous avez besoin d'un serveur S
pour cela :dans l'ordinateur B
, vous autorisez ssh
connexions provenant de S
; et depuis l'ordinateur A
, vous accéderez à ce tunnel au S
pour atteindre B
.
Mais comment obtenez-vous ce serveur S
? J'ai trouvé serveo
(lien :https://serveo.net/). Il est d'une utilisation très simple. Vous n'avez rien à installer ni à vous inscrire et c'est gratuit. Selon le site Web, les étapes à suivre sont :
-
Pensez à un alias pour l'ordinateur
B
. Par exemple,computer_B_alias
. -
Dans l'ordinateur
B
, exécutezssh -R computer_B_alias:22:localhost:22 serveo.net
. -
Maintenant, vous pouvez accéder à l'ordinateur
B
depuis l'ordinateurA
en exécutant ce qui suit dans l'ordinateurA
:ssh -J serveo.net [email protected]_B_alias
, où vous devez remplaceruser
par le nom de l'utilisateur dans l'ordinateurB
.
P.S. :Bien sûr, vous faites du point 2 une tâche automatique au démarrage de votre ordinateur B
.
P.S.S. :Avant d'essayer ceci, assurez-vous que ssh
est installé sur les deux ordinateurs. Pour Ubuntu, sudo apt-get install ssh
ferait le travail.
Vous pouvez utiliser une sorte de VPN pour que cela fonctionne, mais cela nécessiterait que vous disposiez d'un serveur auquel le serveur inaccessible puisse accéder. Ensuite, vous pouvez configurer OpenVPN sur le serveur, votre PC et le serveur pare-feu, activez client-to-client
, et tu as fini. http://openvpn.net/howto.html