Linux sunucusunda, mevcut tüm SSH bağlantılarının bir listesini nasıl bulabilirim veya belirli bir SSH bağlantısının bağlantısını nasıl kesebilirim?
Linux sunucusunda, mevcut tüm SSH bağlantılarının bir listesini nasıl bulabilirim veya belirli bir SSH bağlantısının bağlantısını nasıl kesebilirim?
Yanıtlar:
Bunu etkileşimli olarak yapmayı planlıyorsanız, en basit olanı who
uzaktaki bir ana bilgisayardan herhangi bir kullanıcı olup olmadığını basitçe çağırmak ve görmek olacaktır.
[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)
Bu elbette kusursuz değildir, ancak talep üzerine yazmak ve insan gözüyle kolayca işlem yapmak son derece basittir.
@Gravyface'in işaret ettiği gibi, bir -u
seçenek who
eklerseniz, kill
bağlantıyı sonlandırmak için iletebileceğiniz ilişkili PID'yi de yazdıracaktır .
-u
size PID verecektir.
who -u
. Pid'i öldürmek uzak makinemdeki bağlantıyı kesmedi. Ancak, lsof -i | grep ":ssh"
@kce'nin cevabında bir öneride bulundum, farklı bir pid aldım; bu işlemi öldürmek bağlantıyı sonlandırdı. Belki bir ssh bağlantısı ve başlatılan bağlantıyı sonlandırmayan tarafından öldürülmesi nedeniyle başlatılan birden çok işlem vardır; bu benim açıklamam.
Lsof kullanmaya ne dersiniz?
# 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)
Bu durumda, rahatsız edici bağlantıyı öldürebilmeniz gerekir (örn., User2 bağlantısını kesmek için):
# kill -9 3330
lsof -i tcp:22
ve grep'e ihtiyacınız olmayacak.
ssh
ve -p
seçeneği belirtmezseniz ..
Bir yapabileceğiniz ssh bağlantılarını görüntülemek için netstat -atn | grep ':22'
. Bağlantı noktası 22'deki tüm bağlantıları gösterir.
Bağlantıyı kesmek için, sshd'nin (SSH Daemon) PID'sini ile bulmayı deneyebilirsiniz ps-ax
.
Düzenleme: Ben onların bash
oturumu (veya eşdeğer kabuk) PID bulabilirsiniz düşünüyorum . Öldürmek onları bırakmalı.
Başka bir kaynak: Bu iş parçacığının konuyla ilgili bazı ipuçları var.
Bunu dene:
$ ps aux | grep sshd
Bunların bağlantısını kesmek için kill PID
( PID
ikinci sütundaki işlem kimliği nerede olabilir ), kök ayrıcalıklarınız varsa veya söz konusu kullanıcı iseniz.