Pada server Linux, bagaimana saya menemukan daftar semua koneksi SSH saat ini, atau memutuskan koneksi SSH tertentu?
Pada server Linux, bagaimana saya menemukan daftar semua koneksi SSH saat ini, atau memutuskan koneksi SSH tertentu?
Jawaban:
Jika Anda berencana melakukan ini secara interaktif, yang paling sederhana adalah dengan memohon who
dan melihat apakah ada pengguna dari host jarak jauh.
[you@host]$ who
user1 :0 Feb 8 09:45
user1 pts/1 Feb 14 17:56 (:0.0)
malcolm pts/3 Feb 15 17:50 (cockpit.serenity.com)
reynold pts/2 Feb 15 17:48 (host123.firefly.co.uk)
Ini tentu saja tidak mudah, tetapi sangat mudah untuk mengetik pada permintaan dan mudah diproses dengan mata manusia.
Seperti yang ditunjukkan @gravyface, jika Anda menyertakan -u
opsi who
juga akan mencetak PID terkait yang dapat Anda lewati kill
untuk mengakhiri koneksi.
-u
akan memberi Anda PID.
who -u
. Membunuh pid tidak menghentikan koneksi pada mesin remote saya. Namun, setelah saya melakukan yang lsof -i | grep ":ssh"
disarankan dalam jawaban oleh @ kce, saya mendapat pid yang berbeda; membunuh proses yang memutuskan koneksi. Mungkin ada beberapa proses yang dimulai karena koneksi ssh dan membunuh yang ditampilkan oleh yang tidak memutuskan koneksi; itu penjelasan saya.
Bagaimana kalau menggunakan lsof?
# lsof -i |grep ":ssh"
sshd 1943 root 3u IPv6 5698 TCP *:ssh (LISTEN)
sshd 1943 root 4u IPv4 5700 TCP *:ssh (LISTEN)
sshd 3217 root 3r IPv4 9687 TCP www.example.com:ssh->192.168.61.11:7341 (ESTABLISHED)
sshd 3220 user1 3u IPv4 9687 TCP www.example.com:ssh->192.168.61.11:7341 (ESTABLISHED)
sshd 3327 root 3r IPv4 10595 TCP www.example.com:ssh->192.168.61.11:7385 (ESTABLISHED)
sshd 3330 user2 3u IPv4 10595 TCP www.example.com:ssh->192.168.61.11:7385 (ESTABLISHED)
Anda kemudian harus dapat mematikan koneksi yang menyinggung (misalnya, untuk memutuskan pengguna2):
# kill -9 3330
lsof -i tcp:22
dan Anda tidak perlu grep.
ssh
dan tidak menentukan -p
opsi ..
Untuk melihat koneksi ssh Anda dapat melakukan a netstat -atn | grep ':22'
. Ini menunjukkan semua koneksi pada port 22.
Untuk menjatuhkan koneksi, Anda dapat mencoba menemukan PID dari sshd (SSH Daemon) dengan ps-ax
.
Sunting: Saya pikir Anda dapat menemukan PID dari bash
sesi mereka (atau shell yang setara). Membunuh itu seharusnya menjatuhkan mereka baik-baik saja.
Sumber lain: utas ini memiliki beberapa tip tentang subjek.