jak połączyć ssh z określonym portem?

56

Wiem jak podłączyć „do” określonego portu podczas ssh'ing.

ssh user@remotehostip -p XXX

ale czy istnieje sposób na ustanowienie ssh „z” określonym portem?

Mam na myśli, czy istnieje sposób na określenie portu, z którego będzie korzystał mój komputer lokalny?

kwagjj
źródło
Miałeś na myśli zmianę portu serwera lub portu odbierającego klienta? Edycja: Ok, usunąłem moją sugestię. Ulubione
polym
Chcę określić port klienta
kwagjj
3
@kwagjj masz na myśli port źródłowy? Jeśli tak, nie możesz kontrolować portu źródłowego.
Patrick

Odpowiedzi:

15

To nie jest łatwo możliwe. Jak można to zrobić, zależy od tego, gdzie powinien być widoczny port źródłowy: Też lokalnie, czy wystarczy, jeśli jest to właściwy port z perspektywy sieci zewnętrznej?

Możesz uruchomić klienta SSH w kontenerze LXC. Nigdy tego nie zrobiłem, dlatego nie mogę ci tego szczegółowo wyjaśnić. Ale tworzysz interfejs sieci wirtualnej i dołączasz go do tego kontenera, aby sshkorzystał z tego interfejsu, ponieważ jest to jedyny (zewnętrzny) interfejs, który widzi.

W systemie hosta powinno być możliwe wykrycie, że pakiet pochodzi z tego interfejsu. W ten sposób możesz użyć NAT (SNAT) Netfiltera do przepisania adresu źródłowego za pomocą czegoś takiego:

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

Oczywiście to nie działa (lub staje się bardziej skomplikowane), jeśli łączysz się z portami innymi niż 22.

Hauke ​​Laging
źródło
1
dzięki ... ale myślę, że te informacje są poza moją ligą ... ale mimo to dziękuję :) Ale jeśli naprawdę naprawdę trafię w ślepy zaułek tego, co robię ... może zwrócę głowę na to odpowiedz jeszcze raz :)
kwagjj
tak, naprawdę trudno jest znaleźć informacje na ten temat. Znalazłem sshfsi ktoś powiedział, że to działa z tym poleceniem, ale nie wierzę w to. Jeśli znajdziesz odpowiedź, daj nam znać :)!
polym
@kwagjj Zainstalowanie kompletnego (w trybie tekstowym) systemu Linux jako prawdziwej maszyny wirtualnej może być łatwiejsze (zrozumieć). Jeśli używasz tej maszyny wirtualnej (lub określonego konta) tylko dla SSH, możesz to zrobić za pomocą VM Netfilter.
Hauke ​​Laging
6

Być może jest to składnia polecenia, której szukasz. ssh -p XXX użytkownik @ remotehostip Musisz zmienić kolejność opcji. Wypróbuj teraz, działa dla mnie. Z poważaniem.

Rafael Garcia
źródło
2

Prostym rozwiązaniem tego problemu, jeśli przekierowujesz porty przez router, jest ustawienie portu wejściowego na cokolwiek chcesz, a portu lokalnego na 22. Twój komputer będzie nadal przyjmował połączenie ssh na 22 jak zwykle, ale w rzeczywistości będzie łączyć się spoza twojej sieci użyjesz portu przychodzącego. Jeśli tylko próbujesz powstrzymać boty przed uderzeniem twojej maszyny w 22, powinno to zrobić.

To może nie pomóc w rozwiązaniu konkretnego problemu, ale wyobrażam sobie, że wiele osób trafia tutaj z tego powodu.

Stoopkid
źródło