使用tee和解析文件为用户命令记录ssh会话

时间:2016-02-03 05:37:31

标签: linux logging ssh

我需要从客户端登录每个用户的ssh会话。我正在用发球台做这个

ssh abc@example.com | tee $(whoami).$(date).log

但是,我只想在ssh会话中记录用户命令并跳过命令的输出。例如:如果用户将大文件拖尾,我不想记录整个文件。

我尝试grep命令提示符并将输出重定向到另一个文件。

ssh abc@example.com | tee >(cat logfile) | grep "CMD_PROMPT_PATTTERN" >> $(whoami).$(date).log

但是,如果用户更改命令提示符,则无效。

我想知道是否有办法从文本文件中获取linux命令。

一些相关的背景: 我已阅读其他帖子,建议在ssh周围添加一个包装来进行日志记录。 但在这种情况下,用户可以从example.com ssh到另一台主机(例如example2.com),我们也需要记录从这里执行的命令。我也尝试过按键记录器,但没有办法区分不同用户执行的命令。

我很感激有任何其他建议来实施日志记录。

1 个答案:

答案 0 :(得分:0)

为什么不tail -f用户的.bash_history? (或者他们使用的是什么shell),但是首先你需要设置“在线”写作export PROMPT_COMMAND='history -a'