Pada server Linux, bagaimana saya menemukan daftar semua koneksi SSH saat ini, atau memutuskan koneksi SSH tertentu?
linux
command-line-interface
ssh
Cerin
sumber
sumber
Jawaban:
Jika Anda berencana melakukan ini secara interaktif, yang paling sederhana adalah dengan memohon
who
dan melihat apakah ada pengguna dari host jarak jauh.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
opsiwho
juga akan mencetak PID terkait yang dapat Anda lewatikill
untuk mengakhiri koneksi.sumber
-u
akan memberi Anda PID.who -u
. Membunuh pid tidak menghentikan koneksi pada mesin remote saya. Namun, setelah saya melakukan yanglsof -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?
Anda kemudian harus dapat mematikan koneksi yang menyinggung (misalnya, untuk memutuskan pengguna2):
sumber
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.
sumber
Coba ini:
$ ps aux | grep sshd
Untuk memutuskannya, Anda bisa
kill PID
(di manaPID
Id proses di kolom kedua), jika Anda memiliki hak akses root, atau pengguna yang dimaksud.sumber