
Mac OS または Linux でコマンドラインを使用して他のユーザーの SSH 接続からログオフする方法
SSH(セキュアシェル)は、コマンドラインからMacやLinuxマシンへのリモート接続を確立する非常に一般的な方法です。システム管理者の方、あるいは何らかの理由でMacでSSHを有効にしている方は、他のユーザーのSSH接続をログオフする必要があるかもしれません。Mac(あるいはLinuxマシンでも、これらのヒントは同様に当てはまります)へのユーザーのSSH接続を終了する方法はいくつかあります。ここではそのうちのいくつかを紹介します。
これらの方法は、コンピュータでSSHをどのように有効化したかに関係なく、ユーザーのSSH接続をログオフするために使用できます。MacがリモートログインでSSHを有効にしているか、コマンドラインでSSHを有効にしているかは、これらの目的には関係ありません。同様に、これらのトリックはMacOSとMac OS Xを想定して書かれていますが、Linuxやその他のほとんどのUnix系OSにおけるSSHユーザープロセスの終了にも同様に当てはまります。
ユーザーのSSH接続からログオフする方法
おそらく、ssh 経由で接続されたユーザーをログアウトする最も一般的な方法は、問題の特定の ssh プロセスまたはユーザー アカウントを直接ターゲットにして、kill または pkill コマンドを使用することです。
killでsshユーザーをログアウトする
まず、ユーザーの SSH 接続のプロセス ID (PID) を取得します。
ps aux | grep sshd
次に、対象ユーザーのSSH接続の特定のプロセスを特定し、kill -9でそのプロセスを対象にします。例えば、ユーザーWalrusのSSH接続を終了したいとします。「sshd: Walrus@ttys011」のプロセスのPIDは5821です。
kill -9 5821
効果は即座に現れ、ユーザー側のターミナル画面には「ローカルホストへの接続がリモート ホストによって閉じられました。ローカルホストへの接続が閉じられました。」というメッセージが表示されます。
pkill を使用してユーザーの SSH 接続と関連プロセスを広範囲に終了する
もう 1 つのより広範なアプローチは、pkill を使用して特定のユーザー アカウントに属するすべてのプロセスを強制終了することです。これにより、プロセス ID ではなく、ユーザー アカウントを簡単にターゲットにすることができます。
pkill -u username
これにより、そのユーザーのすべてのプロセスが終了し、ユーザー「username」が即座にログアウトされます。
pkill アプローチは、ワイルドカードも受け入れることができ、たとえばすべての ssh プロセスを広範囲に終了したい場合に、名前でプロセスを簡単にターゲットにすることができるため便利です。
他のユーザーのSSH接続を終了する方法は他にもありますが、上記のトリックは、コマンドラインに慣れたユーザーにとっておそらく最も直感的な方法でしょう。基本的に、実行中のプロセスを確認し、想定されるユーザーのSSH接続を特定できる方法であれば、どのような方法でも同じ効果が得られます。そのプロセスを終了すると、そのユーザーはSSHからログアウトされます。
アクティビティモニタを使用してMacからSSHユーザーをログオフする
MacユーザーでGUIを使い続ける場合は、アクティビティモニタを使ってタスクを見つけて終了することもできます。これは、Macアプリを強制終了するのと同じ方法です。アクティビティモニタを開き、「ssh」を検索して、終了したいユーザーのssh接続を見つけ、アクティビティモニタでそのプロセスを終了してください。
このアプローチでは、ネイティブ Mac ユーティリティであるアクティビティ モニタを使用するため、このユーティリティがない Linux マシンではこの方法は機能しません。ただし、プロセスをターゲットとする他のアプローチでは機能します。
念のため言っておきますが、ログインしたユーザー アカウントに固有の関連プロセスをターゲットにすることで、これらすべては基本的に Telnet、画面共有、またはその他のリモート接続方法でも同じように機能します。
ユーザーの SSH 接続をログアウトしたり、ユーザーを SSH から切断したりするための他の方法やアプローチをご存知の場合は、以下のコメント欄で共有してください。