GNU/Linux >> Linux の 問題 >  >> Linux

SSH 経由でログインしているかどうかを確認するにはどうすればよいですか?

解決策 1:

「w」または「who」コマンド出力を使用できます。 ssh 経由で接続すると、ソース IP が表示されます。

解決策 2:

unix.stackexchange で見つけた素晴らしい回答を次に示します。

  • 変数 SSH_CLIENT のいずれかの場合 または SSH_TTY が定義されています。これは ssh セッションです。
  • ログイン シェルの親プロセスは ps -o comm= -p $PPID で確認できます . sshd の場合 、ssh セッションです。
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
  SESSION_TYPE=remote/ssh
else
  case $(ps -o comm= -p $PPID) in
    sshd|*/sshd) SESSION_TYPE=remote/ssh;;
  esac
fi

解決策 3:

SSH_* を追加できます env_keepまで sudoers で 他のユーザーに切り替えている間にこれを検出できるようにします。

解決策 4:

bash シェルが直接 sshd の子プロセスであるかどうか (n>1 層の深さではない) を知りたい場合は、次のことができます

<ブロック引用>

猫 /proc/$PPID/ステータス |頭 -1 |カット -f2

sshd が返されるはずです または、現在のシェルの親プロセス名です。

解決策 5:

問題に対する考え方を再考したいと思います。問題は、「特定のコマンドをオフにしたいので、SSH 経由でログインしていますか」ということではありません。 「特定のコマンドを有効にするため、コンソールにログインしていますか?」


Linux
  1. SOCKS 経由で HTTP over SSH をトンネリングする方法は?

  2. 中間マシンを介してscpする方法は?

  3. SSH経由でLinuxをリモートでインストールする方法は?

  1. SSH経由でrootユーザーのログインを無効にする方法

  2. Ssh – Ssh経由で接続した直後にスクリプトを実行する方法は?

  3. Ssh – Sshを介してファイルをリモートで編集する方法は?

  1. 中間マシンを介してScpする方法は??

  2. SSH 接続を終了するにはどうすればよいですか?

  3. SSH 経由でローカルの Hyper-V 仮想マシンに接続する方法を教えてください。