Transfert automatique en tunnel inverse

1

J'ai un Raspberry Pi (distant) qui est derrière un NAT. Pour y accéder à partir de mon ordinateur personnel (local), je le connecte à mon serveur ASW (serveur) via un tunnel inverse comme décrit dans divers messages.

Connexion à distance au serveur:

ssh -f -N -T -R22222:localhost:22 -i ssh-ec2/ec-key.pem [email protected]

Je peux ensuite me connecter à mon serveur ASW via SSH et une fois connecté, je peux me connecter à mon Raspberry via:

ssh -p 22222 pi@localhost

Tout cela fonctionne bien.

Mon problème est maintenant que je veux faire une session à distance avec intellij de mon local directement sur mon Raspberry distant. Pour cela, je dois me connecter à mon serveur via SSH, puis ressaisir manuellement la connexion à ma télécommande.

Comment puis-je configurer un tunnel pour pouvoir me connecter à mon serveur, mais directement au port 22222? J'ai essayé ce qui suit à partir de mon ordinateur local, mais la connexion a expiré:

ssh -l 9999:localhost:22222 [email protected] -i c:/privatekey.pem

Des suggestions que je fais mal? Désolé, je suis totalement nouveau sur Linux, alors excuses-moi si c'est une question stupide.

Nickpick
la source

Réponses:

3

Lorsque vous vous connectez à partir de votre serveur ASW, vous vous connectez à localhost. Notez ce qui man 1 sshdit:

-R [bind_address:]port:host:hostport

[…]

Par défaut, le socket d'écoute sur le serveur sera uniquement lié à l'interface de bouclage. Cela peut être annulé en spécifiant un bind_address. Un vide bind_address, ou l'adresse *, indique que le socket distant doit écouter toutes les interfaces. La spécification d'une télécommande bind_addressn'aboutira que si l' GatewayPortsoption du serveur est activée (voir sshd_config(5)).

Puis man 5 sshd_configdit:

GatewayPorts

Spécifie si les hôtes distants sont autorisés à se connecter aux ports transférés pour le client. Par défaut, sshd(8)lie les redirections de ports distants à l'adresse de bouclage. Cela empêche les autres hôtes distants de se connecter aux ports transférés. GatewayPortspeut être utilisé pour spécifier que sshdles redirections de ports distants doivent pouvoir se lier à des adresses autres que des bouclages, permettant ainsi à d'autres hôtes de se connecter. L'argument peut consister noà forcer les hôtes de transfert distant à être disponibles pour l'hôte local uniquement, yesà obliger les transferts de port distant à se lier à l'adresse générique ou clientspecifiedà permettre au client de sélectionner l'adresse à laquelle le transfert est lié. Le défaut est no.

Pour que cela fonctionne, vous devriez faire quelque chose comme ceci:

Kamil Maciorowski
la source