Як я можу розібратися, на який порт увійти за допомогою SSH?


15

У мене віддалено налаштовано сервер Ubuntu 10.04, який я деякий час встановлював назад. Поки я записував ім'я користувача та пароль, я, здається, був розумним і змінив звичайний ssh-порт з 22 на ... щось інше.

Як дізнатися, яким може бути цей порт?

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


Це, мабуть, нерозумно, і у вас вже є хороші відповіді, але якщо ви підключились раніше, ви можете перевірити історію свого терміналу та / або ~/.ssh/config.
Sparhawk

Відповіді:


24

Спочатку перевірте на конфігураційний файл, який порт налаштований:

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

Потім перезапустіть, sshщоб переконатися, що він завантажує конфігурацію, яку ви щойно побачили, або дізнайтеся, на якому порту sshпрацює:

$ 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

Це нормальна sshробота на порту 22.


1
Лише зауваження: я не думаю, що вам потрібно
судо

У першій команді вам потрібно, sudoтому що зазвичай sshdфайл конфігурації не читається у всьому світі. У другій вам потрібно sudoмати можливість вирішити Program name, інакше ви можете бачити лише ім'я процесів, що працюють під вашим власним користувачем.
Marcos Dione

Я погоджуюся з @piertoni, вам не потрібно запускати цю команду з "SUDO".
Амінтабар

8

Якщо у вас є доступ до сервера за допомогою інших засобів, просто запустіть:

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

Це поверне рядок, як показаний вище, де NNNбуде обраний порт.


3

Простішим способом є просто перегляд файлів конфігурації сервера SSH:

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

Також перевіряється прослуховування портів на процес за допомогою lsof:

sudo lsof -Pi | grep ssh

або будь-яка інша команда з переліком портів, як netstat -lntu.


3

Якщо у вас немає доступу до консолі сервера, вам доведеться перевірити всі порти віддаленого хоста. Ці утиліти схожі nmap, однак мережевий рівень повинен передавати трафік певній комбінації хоста (IP-адреси) І порту.


3

Якщо у вас немає доступу до сервера, ви можете знайти порт SSH за допомогою функції nmap"сканування версії":

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

В -sVопції означає «варіант сканування», а -p-значить «сканувати всі порти». Якщо у вас хороший зв’язок і ви впевнені, що не будете порушувати чийсь брандмауер або IDS, ви можете додати -T5для "сканування якомога швидше". Результати будуть виглядати приблизно так:

PORT     STATE SERVICE VERSION
1422/tcp open  ssh      (protocol 2.0)

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