ฉันจะหาพอร์ตที่จะเข้าสู่ระบบด้วย SSH ได้อย่างไร


15

ฉันมีการตั้งค่าเซิร์ฟเวอร์ Ubuntu 10.04 จากระยะไกลที่ฉันกลับมาตั้งค่าอีกครั้ง ขณะที่ฉันบันทึกชื่อผู้ใช้และรหัสผ่านฉันดูเหมือนจะฉลาดและเปลี่ยนพอร์ต ssh ปกติจาก 22 เป็น ... อย่างอื่น

ฉันจะค้นหาว่าพอร์ตนั้นอาจเป็นอย่างไร

ฉันสามารถเข้าถึงเซิร์ฟเวอร์ผ่านประตูหลังของ บริษัท โฮสติ้งดังนั้นฉันจึงสามารถดำเนินการสิ่งที่จำเป็นต้องใช้คำสั่ง Unix - แต่ฉันไม่สามารถเข้าสู่ระบบโดยใช้ putty shell ปกติบนเครื่องของฉัน


นี่อาจจะเป็นโง่และคุณมีคำตอบที่ดีอยู่แล้ว แต่ถ้าคุณมีการเชื่อมต่อในอดีตคุณสามารถตรวจสอบประวัติ terminal ~/.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
5161

ในคำสั่งแรกที่คุณต้องการsudoเพราะปกติsshdไฟล์กำหนดค่าจะไม่สามารถอ่านได้ทั่วโลก ในวินาทีคุณต้องsudoสามารถแก้ไขได้Program nameมิฉะนั้นคุณจะเห็นชื่อกระบวนการที่ทำงานภายใต้ผู้ใช้ของคุณเท่านั้น
Marcos Dione

ฉันเห็นด้วยกับ @piertoni คุณไม่จำเป็นต้องเรียกใช้คำสั่งนี้ด้วย "SUDO"
Amintabar

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"version scan":

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.