SSH接続の管理


回答:


13

これを対話的に実行することを計画している場合、最も簡単なのは、単に呼び出しwhoて、リモートホストからのユーザーがいるかどうかを確認することです。

[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)

これはもちろん絶対確実というわけではありませんが、オンデマンドで入力して人間の目で簡単に処理するのは非常に簡単です。

@gravyfaceが指摘したように、-uオプションを含めるwhoと、関連付けられたPIDも出力され、kill接続を終了するために渡すことができます。


1
-uPIDを提供します。
gravyface

1人のユーザーに複数の接続がある場合、IPは表示されません
誰かが

何らかの理由で、これは機能しませんでした。リモートマシンから、sshを使用してマシンにログインし、マシンでを実行しましたwho -u。pidを強制終了しても、リモートマシンの接続は終了しませんでした。しかし、lsof -i | grep ":ssh" @ kceの回答で提案した後、別のpidを取得しました。そのプロセスを強制終了すると、接続が終了しました。たぶん、ssh接続のために開始された複数のプロセスがあり、接続を終了しない人によって表示されたプロセスを強制終了しています。それが私の説明です。
Neo Mハッカー

8

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)

その後、問題のある接続を強制終了できるはずです(たとえば、user2を切断するため)。

# kill -9 3330

3
使用するlsof -i tcp:22と、grepは必要ありません。
Shawn Chin

あなたは実行した場合のみsshと指定されていない-pオプション...
Jindra Helcl

1

ssh接続を表示するには、を実行しnetstat -atn | grep ':22'ます。ポート22のすべての接続が表示されます。

接続を切断するには、でsshd(SSHデーモン)のPIDを見つけてみてくださいps-ax

編集:私はあなたが彼らのbashセッション(または同等のシェル)のPIDを見つけることができると思います。それらを大丈夫に落とすべき殺害。

別のリソース:このスレッドには、この件に関するいくつかのヒントがあります。


現在のマシンにはアクティブな接続がありませんが、netstatはまだtcpおよびtcp6接続をリストしています。sshdのPIDをどうすればよいですか?単一の接続をドロップするためだけにSSHサーバー全体を強制終了する必要があることを意味していますか?
セリン

@Cerinこれらの2つの接続は、それらのポート(のみ)でリッスンしていることを示しています

あなたは指定しませんでしたが、私はそれを持っているはずです。申し訳ありません:/
modを上手に扱ってください。

0

これを試して:

$ ps aux | grep sshd

それらを切断するkill PIDPIDは、root権限を持っているか、問題のユーザーである場合(2列目のプロセスID がどこにあるか)が可能です。


これは、sshdが実行中であり、接続が確立されたユーザー(接続数ではなく、接続元のIP)のみを示しています
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.