Jak ustalić, do którego portu należy się zalogować za pomocą SSH?

15

Mam zdalną konfigurację serwera Ubuntu 10.04, którą zainstalowałem jakiś czas temu. Podczas gdy rejestrowałem nazwę użytkownika i hasło, wydaje mi się, że byłem sprytny i zmieniłem zwykły port ssh z 22 na ... coś innego.

Jak mogę dowiedzieć się, jaki może być ten port?

Mam dostęp do serwera za pośrednictwem tylnych drzwi firmy hostingowej, więc mogę wykonywać wszelkie polecenia Unix, ale nie mogę się zalogować przy użyciu normalnej powłoki putty na moim komputerze.

bharal
źródło
Jest to prawdopodobnie głupie i masz już dobre odpowiedzi, ale jeśli łączyłeś się w przeszłości, możesz sprawdzić historię terminali i / lub ~/.ssh/config.
Sparhawk

Odpowiedzi:

24

Najpierw sprawdź w pliku konfiguracyjnym, który port jest skonfigurowany:

$ sudo grep Port /etc/ssh/sshd_config
Port 22

Następnie uruchom ponownie, sshaby upewnić się, że ładuje właśnie obejrzaną konfigurację lub sprawdź, na którym porcie sshjest uruchomiony:

$ sudo netstat -tpln | egrep '(Proto|ssh)'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      12586/sshd

To normalne sshdziałanie na porcie 22.

Marcos Dione
źródło
1
Tylko uwaga: nie sądzę, że potrzebujesz sudo
piertoni
W pierwszym poleceniu potrzebujesz, sudoponieważ zwykle sshdplik konfiguracyjny nie jest czytelny na całym świecie. W drugim przypadku musisz sudobyć w stanie rozwiązać problem Program name, w przeciwnym razie możesz zobaczyć tylko nazwy procesów uruchomionych przez własnego użytkownika.
Marcos Dione
Zgadzam się z @piertoni, nie musisz uruchamiać tego polecenia za pomocą „SUDO”.
Amintabar,
8

Jeśli masz dostęp do serwera w inny sposób, po prostu uruchom:

$ sudo grep Port /etc/ssh/sshd_config 
Port NNN

Zwróci to linię podobną do pokazanej powyżej, gdzie NNNbędzie wybrany port.

terdon
źródło
3

Łatwiej jest po prostu spojrzeć na pliki konfiguracyjne serwera SSH:

➜  ~  sudo grep Port /etc/ssh/sshd_config 
   Port 22

Istnieje również sprawdzanie portów nasłuchiwania na proces za pomocą lsof:

sudo lsof -Pi | grep ssh

lub dowolne inne polecenie z listą portów, takie jak netstat -lntu.

Braiam
źródło
3

Jeśli nie masz dostępu do konsoli serwera, musisz sondować wszystkie porty z odległego hosta. Te narzędzia są podobne nmap, jednak warstwa sieci musi przekazywać ruch do określonej kombinacji hosta (adres IP) ORAZ portu.

Archemar
źródło
3

Jeśli nie masz dostępu do logowania do serwera, możesz znaleźć port SSH za pomocą nmapfunkcji „skanowania wersji”:

nmap -sV -p- <insert target's IP here>

Ta -sVopcja oznacza „skanowanie wersji” i -p-„skanowanie wszystkich portów”. Jeśli masz dobre połączenie i jesteś pewien, że nie będziesz denerwować czyjejś zapory ogniowej lub IDS, możesz dodać -T5„skanuj tak szybko, jak to możliwe”. Wyniki będą wyglądać mniej więcej tak:

PORT     STATE SERVICE VERSION
1422/tcp open  ssh      (protocol 2.0)
znak
źródło
1
$ sudo netstat -lntp
[sudo] password for XXX:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address  State        PID/Program name
tcp   0      0      0.0.0.0:22       0.0.0.0:*        LISTEN       2799/sshd
tcp6  0      0      :::22            :::*             LISTEN       2799/sshd
MJD
źródło