このように指定されたSSHDログファイルがSSHサーバーPCに設定されます。
vim /etc/rsyslog.conf
local0.* /var/log/sshd.log
vim /etc/ssh/sshd_config
SyslogFacility local0
ログファイルを生成するには:
touch /var/log/sshd.log
すべてのサービスを再起動します。
systemctl restart rsyslog
systemctl restart sshd
このようにして、SSHクライアントコンピュータからすべてのSSHログイン情報を取得します。
sudo vim /etc/bash.bashrc
HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S:whoami: "
export HISTTIMEFORMAT
PROMPT_COMMAND='history -a'
source /etc/bash.bashrc
これで、すべてのSSHログ履歴を取得します。
history |grep ssh
私の質問は、sshサーバーコンピュータでsshdログファイルを設定するのではなく、sshクライアントコンピュータで指定されたsshログファイルを設定する方法です。
これはSSHクライアントコンピュータに対する私の試みです。
vim /etc/rsyslog.conf
local0.* /var/log/ssh.log
vim /etc/ssh/ssh_config
SyslogFacility local0
ログファイルを生成するには:
touch /var/log/ssh.log
すべてのサービスを再起動します。
systemctl restart rsyslog
reboot
SSHクライアントコンピュータから自分のvpsにログインするとエラーが発生します。
/etc/ssh/ssh_config: line 56: Bad configuration option: syslogfacility
/etc/ssh/ssh_config: terminating, 1 bad configuration options
履歴に書き込む代わりに、SSHクライアントコンピュータで特定のSSHログファイルを設定する方法はありますか?
Historyコマンドは、SSHクライアントコンピュータで実行されたすべてのSSH操作を記録できます。すべてのログ情報を/var/log/ssh.logなどの指定された単一のファイルに保存したいと思います。
そんなことはしないでください。
history |grep ssh >> /var/log/ssh.log
答え1
クライアント側で、次の操作を行います。
script logfile.log
ssh into the machine
do whatever you need
exit from ssh
exit from script
終了するまで、スクリプトセッションで発生したすべての内容を最初に指定されたファイルに書き込みます。
全画面(vi、topなど)で動作するコマンドはログにゴミを生成するので注意してください。