Как подключить SSH с указанным портом?

56

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

ssh user@remotehostip -p XXX

но есть ли способ установить ssh с определенным портом?

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

kwagjj
источник
Вы имели в виду изменение порта сервера или порта приема клиента? Изменить: Хорошо, я удалил свое предложение. Избранные.
полим
Я хочу указать порт клиента
kwagjj
3
@kwagjj ты имеешь в виду порт источника? Если нет, вы не можете контролировать исходный порт.
Патрик

Ответы:

15

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

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

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

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

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

Хауке Лагинг
источник
1
спасибо ... но я думаю, что эта информация выходит за рамки моей лиги ... но все равно спасибо :) Но если я действительно действительно захожу в тупик с тем, что я делаю ... возможно, я поверну голову к этому ответь снова :)
kwagjj
да, действительно трудно найти информацию по этому вопросу. Я нашел около, sshfsи кто-то сказал, что это работает с этой командой, но я не верю этому. Если вы найдете ответ, пожалуйста, сообщите нам об этом :)!
Polym
@kwagjj Может быть проще (понять) установить полноценный (текстовый режим) Linux как настоящую виртуальную машину. Если вы используете эту ВМ (или определенную учетную запись в ней) только для SSH, то вы можете сделать это с помощью VM Netfilter.
Хауке Лагинг
6

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

Рафаэль Гарсия
источник
2

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

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

Stoopkid
источник