web-dev-qa-db-ja.com

個々のSSHセッションのセッションログを作成するにはどうすればよいですか?

これが私が探しているものです:

SunOSで個々のSSHセッションをログに記録する方法。 SSH接続先のデバイスのホスト名に基づいてファイルを個別に保持したいと思います。 CLIインターフェイスのみを使用しているため、GUIツールは機能しません。私が検討しているオプションには、scriptコマンドまたはscreenユーティリティの使用が含まれます。自動化された方法で複数のセッションを複数のデバイスに記録する方法を誰かが説明できるとしたら。したがって、たとえば、.bashrcの例または使用できるスクリプトを含めることができれば、ログインするたびに同じコマンドを手動で入力する必要はありません。これは理想的です。

おそらく、スクリプトが最初にscreenまたはscriptのいずれかを呼び出し、SSHで接続しているホスト名に基づいてロギングを開始し、次にSSHを呼び出して接続を開始できると考えていました。ありがとう!

2
Mark S.

画面制御エスケープコードを含む、セッション中に発生するすべての生のログファイルを作成するには、teeを使用します。

.bashrcで関数を作成します。

myssh () { ssh $1 2>&1 | tee -a ~myusername/logdir/$1.log; }

次に、エイリアスを作成します。

alias ssh=myssh

これで、logdirを作成したと仮定すると、ssh接続を確立するたびに、セッションの内容が接続名に基づいてログファイルに追加されます。

3
Don Simon