як підключити ssh 'до' вказаного порту?


56

Я знаю, як підключити "до" певного порту, коли ssh'ing.

ssh user@remotehostip -p XXX

але чи є спосіб встановити ssh 'з' певним портом?

Я маю на увазі, чи є спосіб вказати порт, який використовуватиме мій локальний комп'ютер?


Ви мали на увазі зміну порту сервера або клієнтського приймаючого порту? Редагувати: Гаразд, я видалив свою пропозицію. Улюблене.
полім

Я хочу вказати порт клієнта
kwagjj

3
@kwagjj Ви маєте на увазі вихідний порт? Якщо ні, ви не можете керувати портом джерела.
Патрік

Відповіді:


15

Це не легко. Як це можна зробити, залежить від того, де буде бачити вихідний порт: також на місцевому рівні чи достатньо, якщо це правильний порт з точки зору зовнішньої мережі?

Ви можете запустити клієнт SSH у контейнері LXC. Я ніколи цього не робив, тому не можу це вам детально пояснити. Але ви створюєте віртуальний мережевий інтерфейс і додаєте його до цього контейнера, щоб він sshвикористовував цей інтерфейс, оскільки це єдиний (зовнішній) інтерфейс, який він бачить.

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

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

Звичайно, це не працює (або стає складніше), якщо ви підключаєтесь до портів, відмінних від 22.


1
спасибі ... але я думаю, що ця інформація є поза моєю лігою ... але все-таки дякую, хоча :) Але якщо я дійсно дійсно потрапив у тупик з тим, що роблю .. можливо, я поверну голову до цього відповідь ще раз:
kwagjj

так, дійсно важко знайти інформацію з цього питання. Я знайшов про, sshfsі хтось сказав, що це працює з цією командою, але я не вірю в це. Якщо ви знайдете відповідь, будь ласка, повідомте нас!
полим

@kwagjj Можливо, буде простіше (зрозуміти) встановити повний (текстовий режим) Linux як справжню віртуальну машину. Якщо ви використовуєте цей VM (або певний обліковий запис у ньому) лише для SSH, тоді це можна зробити за допомогою VM Netfilter.
Хоуке Лагінг

6

Синтаксис команд, який ви шукаєте, можливо, це такий. ssh -p XXX user @ remotehostip Ви повинні змінити порядок опцій. Спробуйте зараз, це працює для мене. З найкращими побажаннями.


2

Просте рішення для цього, якщо ви переадресуєте порт через свій маршрутизатор, - це встановити вхідний порт на все, що ви хочете, а локальний порт - на 22. Ваша машина все одно буде приймати ssh-з'єднання на 22, як звичайне, але насправді підключатись поза вашої мережі Ви б використовували вхідний порт. Якщо ви просто намагаєтесь зупинити ботів від удару машини на 22, це слід зробити.

Це може не допомогти для вашої конкретної проблеми, але я думаю, що багато людей потраплять сюди саме з цієї причини.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.