Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

SSH เป็นโปรโตคอลยอดนิยมและมีประสิทธิภาพซึ่งช่วยให้คุณเข้าสู่ระบบและจัดการโฮสต์ระยะไกลจากเครื่องในพื้นที่ของคุณได้ คู่มือนี้จะแนะนำคำสั่งต่างๆ ที่คุณสามารถใช้ตรวจสอบการเชื่อมต่อ SSH ที่ใช้งานอยู่บนโฮสต์ระยะไกลได้

หมายเหตุ: ขึ้นอยู่กับการกำหนดค่าระบบ คำสั่งบางคำสั่งที่เราจะพูดถึงอาจทำให้คุณต้องมีรูทหรือ sudo สิทธิพิเศษ

1. การใช้คำสั่งของ WHO

คำสั่งแรกที่คุณสามารถใช้เพื่อแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่คือ who คำสั่ง

who คำสั่งที่ใช้แสดงว่าใครเข้าระบบอยู่ ช่วยให้เราดูผู้ใช้ที่เชื่อมต่อและที่อยู่ IP ต้นทางได้

ในการใช้ who คำสั่งเพียงป้อน who โดยไม่มีพารามิเตอร์ใดๆ

วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

ในผลลัพธ์ข้างต้น คุณจะเห็นผู้ใช้เดเบียนหนึ่งรายเชื่อมต่อผ่าน tty และเซสชัน SSH สองเซสชันจากที่อยู่ IP ระยะไกล

คุณยังสามารถเพิ่มพารามิเตอร์ให้กับ who คำสั่งแสดงข้อมูลโดยละเอียด

ตัวอย่างเช่น หากต้องการแสดงการบูตครั้งสุดท้ายสำหรับผู้ใช้ที่เชื่อมต่อ ให้เพิ่ม -b -u ธง:

who -b -u
วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

who คำสั่งมีตัวเลือกเพิ่มเติมเพื่อรับผลลัพธ์ที่กำหนดเอง ดูหน้าคู่มือเพื่อเรียนรู้เพิ่มเติม

2. การใช้คำสั่ง W

คำสั่งถัดไปที่คุณสามารถใช้เพื่อแสดงสถานะของเซสชัน SSH ต่างๆ และผู้ใช้ที่เชื่อมต่อกับเซิร์ฟเวอร์คือ w สั่งการ. ต่างจาก who คำสั่ง w คำสั่งให้ข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการทำงานสำหรับผู้ใช้แต่ละราย

นอกจากนี้ w คำสั่งจะให้ข้อมูลเกี่ยวกับการเชื่อมต่อ SSH ที่ไม่ได้ใช้งาน ซึ่งจะมีประโยชน์มากเมื่อคุณต้องการยุติการเชื่อมต่อ

หากคุณเรียกใช้คำสั่งโดยไม่มีตัวเลือกอื่น คุณควรได้ผลลัพธ์ที่คล้ายกับที่แสดงด้านล่าง

วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

ในตัวอย่างข้างต้น w คำสั่งให้ข้อมูลโดยละเอียด เช่น ชื่อผู้ใช้ วิธี TTY ที่อยู่ IP ต้นทาง เวลาที่เข้าสู่ระบบ เวลาว่าง และอื่นๆ

เช่นเดียวกับ who คำสั่ง คุณยังสามารถใช้ w คำสั่งพร้อมพารามิเตอร์ต่างๆ ตารางด้านล่างแสดงพารามิเตอร์ต่างๆ ที่คุณสามารถใช้กับ w คำสั่ง

พารามิเตอร์ ทำหน้าที่อะไร
-h, –no-header แจ้งเทอร์มินัลไม่ให้พิมพ์ส่วนหัว
-u, –ไม่มีกระแส แจ้งเทอร์มินัลให้ละเว้นชื่อผู้ใช้ในขณะที่แสดงกระบวนการของผู้ใช้ที่เชื่อมต่อและเวลา CPU
-s, –สั้น บอกให้เทอร์มินัลพิมพ์เอาต์พุตที่สั้นลง – ไม่รวมเวลาล็อกอิน, JCPU และ PCPU
-f, –จาก เปิด/ปิดตัวเลือก FROM ของเอาต์พุตการพิมพ์
–help แสดงตัวเลือก/พารามิเตอร์และออกจากคำสั่ง w ต่างๆ
-v, –version แสดงข้อมูลเกี่ยวกับเวอร์ชันและการออก
ผู้ใช้ จำกัดผลลัพธ์ให้แคบลงเฉพาะผู้ใช้ที่ระบุ

ตัวอย่างด้านล่างแสดง w คำสั่งที่ใช้กับ -s และ -f พารามิเตอร์เพื่อแสดงเอาต์พุตแบบย่อของเซสชัน SSH ปัจจุบันโดยที่ส่วน FROM ถูกตัดออก

วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

แม้ว่าจะไม่ค่อยได้ใช้ คุณยังสามารถใช้ w คำสั่งด้วยพารามิเตอร์ด้านสิ่งแวดล้อมและไฟล์ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับพารามิเตอร์เหล่านี้ ให้พิจารณา man page

3. การใช้คำสั่งสุดท้าย

คุณยังสามารถใช้ last คำสั่งแสดงเซสชัน SSH ที่เชื่อมต่อทั้งหมด คำสั่งสุดท้ายแสดงรายการผู้ใช้ที่เข้าสู่ระบบล่าสุด

ทำงานโดยการตรวจสอบไฟล์ที่กำหนด ตัวอย่างเช่น “/var/log/wtmp” แสดงผู้ใช้ทั้งหมดที่เข้าสู่ระบบและออกจากระบบตั้งแต่สร้างไฟล์ คำสั่งนี้ยังให้ข้อมูลเกี่ยวกับเซสชัน SSH ที่สร้างขึ้นระหว่างไคลเอนต์และเซิร์ฟเวอร์อีกด้วย

ไวยากรณ์ทั่วไปสำหรับคำสั่งสุดท้ายคือ:

last

นี่คือตัวอย่าง

วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

เนื่องจากผลลัพธ์จากคำสั่งสุดท้ายมีขนาดใหญ่ เราจึงสามารถใช้ grep คำสั่งให้แสดงเฉพาะเซสชันที่ใช้งานอยู่เท่านั้น

ตัวอย่างเช่น:

last | grep still
วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

คุณยังสามารถแก้ไขผลลัพธ์จากคำสั่งสุดท้ายเพื่อแสดงข้อมูลโดยละเอียดได้

ตัวอย่างเช่น เพื่อแสดงชื่อผู้ใช้และโดเมนแบบเต็ม เราสามารถใช้ -w ธง.

last -w

คำสั่งสุดท้ายรองรับตัวเลือกมากมาย ต่อไปนี้คือตัวเลือกที่ใช้บ่อยที่สุดสำหรับคำสั่งสุดท้าย

พารามิเตอร์ ทำหน้าที่อะไร
-a, –hostlast แสดงชื่อโฮสต์ในคอลัมน์สุดท้าย
-d, –dns Linux เก็บชื่อโฮสต์และที่อยู่ IP ของโฮสต์ระยะไกลทั้งหมด พารามิเตอร์นี้เปลี่ยน IP เป็นชื่อโฮสต์
-file, –file แจ้งคำสั่งสุดท้ายเพื่อใช้ไฟล์ที่กำหนดนอกเหนือจาก /var/log/wtmp
-F, –fulltimes ข้อความแจ้งให้พิมพ์วันที่และเวลาสำหรับการเข้าสู่ระบบและออกจากระบบทั้งหมด
-i, –ip คล้ายกับ –dns ยกเว้นแทนที่จะแสดงชื่อโฮสต์ของโฮสต์ มันจะแสดงหมายเลข IP

4. การใช้คำสั่ง netstat

เราไม่สามารถลืมเกี่ยวกับ netstat สั่งการ. Netstat ใช้เพื่อแสดงการเชื่อมต่อเครือข่าย อินเทอร์เฟซเครือข่าย ตารางเส้นทาง และอื่นๆ

คุณยังสามารถใช้คำสั่ง netstat เพื่อกรองเซสชัน SSH ที่สร้างหรือเชื่อมต่อบนเซิร์ฟเวอร์ Linux ของคุณ:

netstat | grep ssh
วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

คำสั่งด้านบนแสดงเฉพาะการเชื่อมต่อ SSH ที่สร้างไว้

เพื่อแสดงการเชื่อมต่อทั้งหมดรวมถึงการฟังและการไม่ฟัง เราสามารถใช้ -a ตั้งค่าสถานะเป็น:

nestat -a | grep ssh
วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

5. การใช้คำสั่ง ss

หากคุณต้องการเรียนรู้ข้อมูลเพิ่มเติมเกี่ยวกับเซสชัน SSH ที่เชื่อมต่อ คุณสามารถใช้ ss คำสั่งที่แสดงข้อมูล socket ทำให้คล้ายกับ netstat .

ตัวอย่างเช่น เราสามารถ grep เอาต์พุตจาก ss คำสั่งด้วย -a ตัวเลือก (ทั้งหมด) เพื่อแสดงเซสชัน SSH ที่เชื่อมต่อทั้งหมด ไวยากรณ์สำหรับสิ่งนั้นคือ:

ss -a | grep ssh
วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

เอาต์พุตด้านบนแสดงการเชื่อมต่อ SSH ทั้งหมดบนรีโมตโฮสต์ ซึ่งจะรวมถึง SSHD daemon

ในการกรองการเชื่อมต่อ SSH ที่สร้างขึ้น คุณสามารถไพพ์เอาต์พุตกลับไปที่ grep

ss -a | grep ssh | grep ESTAB
วิธีแสดงการเชื่อมต่อ SSH ที่ใช้งานอยู่ทั้งหมดใน Linux

คำสั่งด้านบนจะส่งคืนเฉพาะการเชื่อมต่อ SSH ที่ใช้งานอยู่

ss คำสั่งยังมีตัวเลือกอื่น ๆ อีกมากมายที่คุณสามารถใช้เพื่อเรียนรู้สิ่งต่าง ๆ เกี่ยวกับการเชื่อมต่อเซิร์ฟเวอร์ที่ใช้งานอยู่ ตัวอย่างเช่น คุณสามารถใช้ -e ตั้งค่าสถานะเพื่อแสดงข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลซ็อกเก็ต

บทสรุป

เป็นการดีที่จะคอยเฝ้าติดตามโฮสต์ระยะไกลของคุณสำหรับการเข้าสู่ระบบ SSH ที่ไม่ได้รับอนุญาตและดำเนินการที่จำเป็น เช่น การรักษาความปลอดภัยเซิร์ฟเวอร์ของคุณ หรือการปิดใช้งานการพิสูจน์ตัวตนด้วยรหัสผ่าน ในขณะเดียวกัน คุณยังสามารถใช้ช่องสัญญาณ SSH ย้อนกลับเพื่ออนุญาตการเชื่อมต่อภายนอกกับพีซีของคุณได้