Bagaimana cara mengetahui port mana yang harus masuk dengan SSH?

14

Saya memiliki pengaturan server Ubuntu 10,04 dari jarak jauh yang saya atur beberapa waktu lalu. Ketika saya mencatat nama pengguna dan kata sandi, saya tampaknya pandai dan mengubah port ssh yang biasa dari 22 menjadi ... sesuatu yang lain.

Bagaimana cara mengetahui apa port itu?

Saya memiliki akses ke server melalui pintu belakang perusahaan hosting, sehingga saya dapat menjalankan perintah Unix apa pun yang diperlukan - tetapi saya tidak dapat masuk menggunakan shell dempul normal pada mesin saya.

bharal
sumber
Ini mungkin konyol, dan Anda sudah memiliki jawaban yang baik, tetapi jika Anda telah terhubung di masa lalu, Anda dapat memeriksa riwayat terminal Anda dan / atau ~/.ssh/config.
Sparhawk

Jawaban:

24

Pertama periksa file konfigurasi port mana yang dikonfigurasi:

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

Kemudian restart sshuntuk memastikan itu memuat konfigurasi yang baru saja Anda lihat atau cari tahu di mana port sshberjalan:

$ 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

Itu sshberjalan normal pada port 22.

Marcos Dione
sumber
1
Hanya sebuah catatan: Saya tidak berpikir Anda perlu sudo
piertoni
Pada perintah pertama yang Anda butuhkan sudokarena biasanya sshdfile config tidak dapat dibaca dunia. Di detik Anda harus sudodapat menyelesaikan Program name, jika tidak, Anda hanya dapat melihat nama untuk proses yang dijalankan di bawah pengguna Anda sendiri.
Marcos Dione
Saya setuju dengan @piertoni, Anda tidak perlu menjalankan perintah ini dengan "SUDO".
Amintabar
8

Jika Anda memiliki akses ke server melalui cara lain, jalankan saja:

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

Itu akan mengembalikan garis seperti yang ditunjukkan di atas di mana NNNakan menjadi port yang Anda pilih.

terdon
sumber
3

Cara yang lebih mudah adalah dengan melihat file konfigurasi server SSH:

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

Ada juga memeriksa port mendengarkan per proses dengan lsof:

sudo lsof -Pi | grep ssh

atau perintah daftar port lain seperti netstat -lntu.

Braiam
sumber
3

Jika Anda tidak memiliki akses ke konsol server, Anda harus memeriksa semua port dari host yang jauh. Utilitas ini seperti nmap, namun lapisan jaringan harus menyampaikan lalu lintas ke kombinasi host (alamat IP) DAN port tertentu.

Archemar
sumber
3

Jika Anda tidak memiliki akses masuk ke server, Anda dapat menemukan port SSH menggunakan nmapfitur "pemindaian versi":

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

The -sVpilihan berarti "versi scan", dan -p-berarti "memindai semua port". Jika Anda memiliki koneksi yang baik dan yakin Anda tidak akan mengecewakan firewall atau IDS seseorang, Anda dapat menambahkan -T5untuk "memindai secepat mungkin". Hasilnya akan terlihat seperti ini:

PORT     STATE SERVICE VERSION
1422/tcp open  ssh      (protocol 2.0)
Menandai
sumber
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
sumber