回答:
接続する新しいユーザーごとにsshd、特定のPIDを持つ新しいセッションが生成されます。を使用pstreeして、どのコマンドがどのsshdセッションから継承されるかを出力し、このPIDをでクロスチェックでき/var/log/auth.logます。
例(匿名化):同じリモートユーザーを使用して、3つの同時セッションでリモートサーバーにログインしました。次に、クライアントがコマンドを実行したIPを確認しますwatch date。
$ pstree -p | grep watch
        |           |-sshd(15243)---sshd(15342)---bash(15343)---watch(15450)
$ sudo grep 15243 /var/log/auth.log
Mar  7 15:37:29 XXXXXXXXXX sshd[15243]: Accepted publickey for XXXXXXXXXX from 12.34.56.78 port 48218 ssh2
Mar  7 15:37:29 XXXXXXXXXX sshd[15243]: pam_unix(sshd:session): session opened for user XXXXXXXXXX by (uid=0)
Mar  7 15:37:44 XXXXXXXXXX sudo: XXXXXXXXXX : TTY=pts/7 ; PWD=/home/XXXXXXXXXX ; USER=root ; COMMAND=/bin/grep 15243 /var/log/auth.logpstree -pは、watchコマンドがsshdPID 15243で継承さgrepれ/var/auth/auth.logていることを示しています。このPIDをに入力すると、このセッションを開始したのはIP 12.34.56.78でした。したがって、これは開始したユーザーでもありますwatch。
history特にこのユーザーの検索については、すべてのリモートユーザーが同じローカルSSHユーザーを使用しているときに、私が見ることができるものから行うことはできません。また、なりすましや無効化なども簡単に行えるため、信頼性はそれほど高くありません。履歴ファイルに保存されている場合は、cpコマンドを探してファイルを逆にたどることができますが、そこにない場合は、何もする必要はありません。
/var/log/secureです。
                    /var/log/auth.log.1などが存在する場合は、それらに情報が含まれているかどうかを確認してください。その後、rsyslog(sudo service rsyslog restart)を再起動しauth.log、それがすでに生成されているはずのが生成され始めるかどうかを確認します。SSHDは/var/log/auth.logデフォルトでUbuntuにログを記録するため、/etc/ssh/ssd_configまたはを介してロギングターゲットを明示的に変更していない限り/etc/syslog.conf(authここでレベルが記録されているファイルを確認できます)、そこにあるはずです。そうでない場合:何かがアップしています:-)。
                    この2行を/ etc / profileまたは/ etc / bashrcに追加して、bashによって実行されたすべてのコマンドをログに記録できます。
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"                                                                                                  
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local3.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'これは、syslogを使用して、実行したすべてのコマンドと実行したユーザーおよびそのIPアドレスを次のような形式で記録します。
Jan  8 08:43:49 xpto local3.debug root: root@192.168.x.y [29385]: ls -al [0]さらに、以下の行をsyslog構成(/etc/syslog.conf)に追加して、local3メッセージを特定のファイルにリダイレクトできます。
local3.*                                                /var/log/prompt.logsyslog-ng改善されており、設定ファイルは/etc/syslog-ng/syslog-ng.conf です。
                    これにはスヌーピーを使用できます。
ログメッセージ形式の定義でIP =%{env:SSH_CLIENT}を指定して、カスタム環境変数(SSH_CLIENT)をログに記録するように構成する必要があります(./configureフラグまたは2.xバージョン以降のsnoopy.iniで構成可能)。
開示:スヌーピーのメンテナはこちら。
もしbashを使っていると仮定すると、history唯一のあなたに表示されますYOURコマンドライン履歴を。デフォルトで~/.bash_historyは、履歴を読み取ります。これは(ほとんどありませんが)のように変更することができますHISTFILE=/home/userFoo/.my_alt_history。
あなたがボックスのルートであると仮定すると、ユーザーのすべてのディレクトリをスキャンし、その履歴を読んで、誰がそのコマンドを実行しているかを確認できます。
ps -aux | grep "cp file1.sh file2.sh"
                    
grep: /var/log/auth.log: No such file or directory:-(