comment connecter ssh 'avec' le port spécifié?

56

Je sais comment me connecter à un certain port lors de la connexion SSH.

ssh user@remotehostip -p XXX

mais existe-t-il un moyen d'établir un ssh 'avec' un certain port?

Je veux dire, est-il possible de spécifier le port que mon ordinateur local utilisera?

Kwagjj
la source
Voulez-vous dire changer le port du serveur ou le port de réception du client? Edit: Ok, j'ai supprimé ma suggestion. Favorisé.
polym
Je veux spécifier le port du client
kwagjj le
3
@ kwagjj vous voulez dire le port source? Si non, vous ne pouvez pas contrôler le port source.
Patrick

Réponses:

15

Ce n'est pas facilement possible. La façon dont cela peut être fait dépend de l'endroit où le port source doit être vu: localement aussi, ou est-ce suffisant si c'est le bon port du point de vue du réseau externe?

Vous pouvez exécuter le client SSH dans un conteneur LXC. Je n'ai jamais fait cela, donc je ne peux pas vous l'expliquer en détail. Mais vous créez une interface réseau virtuelle et l'attachez à ce conteneur pour qu'il sshutilise cette interface car c'est la seule interface (externe) qu'il voit.

Sur le système hôte, il devrait être possible de détecter qu'un paquet provient de cette interface. Ainsi, vous pouvez utiliser le NAT (SNAT) de Netfilter pour réécrire l'adresse source avec quelque chose comme:

iptables -t nat -A POSTROUTING -o vnet0 -p tcp --dport 22 -j SNAT --to-source :1234

Bien sûr, cela ne fonctionne pas (ou devient plus compliqué) si vous vous connectez à des ports différents de 22.

Hauke ​​Laging
la source
1
merci ... mais je pense que cette information est hors de ma ligue ... mais toujours merci :) Mais si je me trouve vraiment dans une impasse avec ce que je fais .. peut-être que je vais tourner la tête à ceci répond à nouveau :)
kwagjj
Oui, il est très difficile de trouver des informations sur ce problème. J'ai trouvé environ sshfset quelqu'un a dit que cela fonctionnait avec cette commande, mais je ne le crois pas. Si vous trouvez la réponse, merci de nous le faire savoir :)!
polym
@kwagjj Il peut être plus facile (compréhensible) d'installer un Linux complet (en mode texte) comme une vraie machine virtuelle. Si vous utilisez cette machine virtuelle (ou un certain compte en elle) pour SSH uniquement, vous pouvez le faire avec VM Netfilter.
Hauke ​​Laging
6

La syntaxe de commande que vous recherchez est peut-être la suivante. ssh -p XXX utilisateur @ remotehostip Vous devez modifier l'ordre des options. Essayez maintenant, ça marche pour moi. Meilleures salutations.

Rafael Garcia
la source
2

Une solution simple pour cela si vous effectuez un transfert de port via votre routeur consiste à définir le port entrant sur ce que vous voulez et le port local sur 22. Votre machine utilisera toujours la connexion ssh sur 22 comme d'habitude, mais se connectera réellement de l'extérieur de votre réseau. vous utiliseriez votre port entrant. Si vous essayez simplement d'empêcher les robots de marteler votre machine, cela devrait le faire.

Cela n’aidera peut-être pas votre problème spécifique, mais j’imagine que beaucoup de gens se retrouvent ici pour cette raison.

Stoopkid
la source