Как подключиться по ssh с указанного порта?

Как подключиться по ssh с указанного порта?

Я знаю, как подключиться к определенному порту с помощью ssh.

ssh user@remotehostip -p XXX

Есть ли способ установить sshотпорт, который будет использовать мой локальный компьютер?

решение1

Это не так-то просто. Как это можно сделать, зависит от того, где будет виден исходный порт: локально тоже или достаточно, если это правильный порт с точки зрения внешней сети?

Вы можете запустить SSH-клиент в контейнере LXC. Я никогда этого не делал, поэтому не могу объяснить вам это подробно. Но вы создаете виртуальный сетевой интерфейс и подключаете его к этому контейнеру, чтобы он sshиспользовал этот интерфейс, потому что это единственный (внешний) интерфейс, который он видит.

На хостовой системе должно быть возможно обнаружить, что пакет приходит с этого интерфейса. Таким образом, вы можете использовать NAT (SNAT) Netfilter для перезаписи исходного адреса с помощью чего-то вроде:

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

Конечно, это не сработает (или станет сложнее), если вы подключитесь к портам, отличным от 22.

решение2

Синтаксис команды, который вы ищете, возможно, такой. ssh -p XXX user@remotehostip Вам нужно изменить порядок опций. Попробуйте сейчас, у меня это работает. С наилучшими пожеланиями.

решение3

Простое решение для этого, если вы перенаправляете порты через маршрутизатор, — установить входящий порт на любой желаемый вами, а локальный порт — на 22. Ваша машина по-прежнему будет принимать ssh-подключение на 22, как обычно, но для фактического подключения извне вашей сети вы будете использовать свой входящий порт. Если вы просто пытаетесь остановить ботов от атаки на вашу машину на 22, это должно сработать.

Это может не помочь в решении вашей конкретной проблемы, но я предполагаю, что многие люди попадают сюда именно по этой причине.

решение4

Основываясь на ответе Хауке Лагинга без контейнера, достаточно добавить это правило iptables перед запуском ssh-клиента:

iptables -t nat -A POSTROUTING -d <remotehostip> -p tcp --dport 22 -j SNAT --to-source :1234

Правило можно удалить после открытия сеанса SSH.

Связанный контент