私のアイドルSSHセッションを終了する方法

私のアイドルSSHセッションを終了する方法

アイドルSSHセッションを終了したい。このリモートサーバーは多くのユーザーが使用していますが、私が所有しているセッションのPIDをどのように識別できますか?

これを実行すると、whoユーザー名でタグ付けされた SSH セッションのリストが表示されます。

$ who
                                                                                       
me      pts/0        2020-11-23 18:05 (tmux(id).%0)
me      pts/1        2020-11-06 13:28 (<ip 1>)
someone    pts/2        2020-11-09 09:36 (<ip 2>)
someone    pts/3        2020-11-26 20:26 (<ip 2>)
...

を実行すると、pstreeセッションにユーザー名タグが付けられなくなります。

$ pstree -p | grep sshd 

|-sshd(930)-+-sshd(3518)---sshd(3536)---python(5736)-+-{python}(5744)
           |           |-sshd(4285)---sshd(4308)
           |           |-sshd(5428)---sshd(5450)
...

答え1

ルート以外では他のプロセスでは何もできないので、sshdすべてのプロセスにシグナルを送信するだけでは危険ではありません。

pkill sshd

独自のプロセスに明示的に制限するには:

pkill -U "$USER" sshd

USERまたは実行中のシェルで変数が使用されていない場合は、"$LOGNAME"代わりに試して"$USER"ください。

pkill -U "$(id -un)" sshd

このコマンドのマニュアルも参照してくださいpkill

一致するプロセスのプロセスIDのリストを取得するには、pgrep代わりに使用してください。表示または一覧表示する場合にのみ、or withをpkill使用してください。pkillpgrep-o最も古いプロセス。

答え2

その場合は、リモートサーバーで実行しないrootでください。pkill sshdそれ以外の場合は再接続できませんssh: connect to host yourdomain.com port 22: Connection refused。代わりに:

  1. ランニングw。最後の列(ラベル付き)WHATでアイドルコマンドを見つけます。次に、2番目の列(ラベル付きTTY)を見てアイドルセッションを見つけます。例: pts/0

  2. ランニングps aux | grep pts/0。最後の列でアイドルコマンドを見つけます。そのPIDは2番目の列にあります(例:)12345。また、-bash対応するPIDを見つけて記録します(例:)12346

  3. kill 12345; kill 12346上記のPIDで実行してください。

  4. 再実行wpts/0再表示してはいけません。

関連情報