记录 SSH 命令?

记录 SSH 命令?

我正在考虑聘请一家公司来帮助我在 Linux 机器上设置一些 GSM 调制解调器设备。他们将通过 SSH 连接,我想知道我是否可以记录他们的所有命令,而不仅仅是在 .bash_history 中,而是在所有地方,以便我将来可以重复设置。例如,问题是,如果他们运行一个提示他们输入配置详细信息的安装文件,.bash_history 不会记录这些内容。

我看到了一个使用 strace 的非常丑陋的“键盘记录器”,但正在寻找输出更类似于 .bash_history 的东西,只是更完整。

答案1

您可以使用运行原始 shell 的包装器替换用户的登录 shell,但将其输入和输出保存在某处。但是,这会很丑陋,因为它可能会包含控制字符、退格键等。

但是,我怀疑你还有其他原因 - 要么缺乏信任,要么你想学习如何自己做。在这种情况下,你应该使用合同,而不是键盘记录器。例如,你可以要求公司给你一个你可以自己运行的 shell 脚本,或者一份文档。

答案2

看一下这个script实用程序。它“将终端上打印的所有内容都打印成打字稿。”

您可以使用以下方式开始录制会话: script record_me.log 然后使用以下方式结束录制:
exit。要查看会话,您可以cat使用以下方式查看日志文件:cat recordme.log,例如

答案3

我尝试使用该script实用程序,但在产生重复输出和启动大量会话方面遇到了一些问题,顺便说一句,如果您尝试这样做并最终运行了 20 多个会话,您可以使用以下命令将它们全部终止:

ps -ef | grep script | grep -v grep | awk '{print $2}' | xargs kill -9

该解决方案(http://archive.is/eSTid#selection-391.5-391.36) 如果我使用 RSA 密钥登录可能会做得更好,但由于我没有这样做,所以最后我使用了另一个项目,配置后它给了我最好的输出。

https://github.com/open-ch/log-user-session

相关内容