![实时监控传入的 SSH 会话](https://linux22.com/image/483167/%E5%AE%9E%E6%97%B6%E7%9B%91%E6%8E%A7%E4%BC%A0%E5%85%A5%E7%9A%84%20SSH%20%E4%BC%9A%E8%AF%9D.png)
是否有任何 Linux 软件可以监控传入的 ssh 会话。在以前的工作中,我被告知,如果您需要 Red Hat 的支持,例如,您可以让他们通过 SSH 进入您的机器,然后您就可以观察他们在做什么。
我处于类似的情况,我想通过 ssh 进入我朋友的机器来帮助他,但我希望他能够出于教育目的观察我所做的事情,并确保我不会做任何恶意的事情。
有什么建议么?
谢谢
答案1
GNU Screen 有这个功能,你可以允许特定的 shell 用户只能通过 screen 进行操作。
https://www.linux.com/training-tutorials/using-screen-remote-interaction/
答案2
我认为屏幕就是您想要的,但如果您不想坐在那里观看,并且想要“录制”用户会话,您可以查看 sudo shell。
如果您将此设置为用户的 shell,您就可以完整地记录所发生的一切,并且可以“重播”它,并在需要时观看它。
唯一可能的缺点是日志可能会变得非常大,例如,如果他们运行类似的命令find /
,你也会记录所有内容 - 所以你可能必须选择为哪些帐户启用它,而不是全局执行。
至于允许供应商登录访问,这可能是完美的,因为您可以对他们所做的一切进行完整的审计跟踪,所有内容(甚至是退格)都会被记录并存储以供重播。
log_output
是 sudoers 的录音机选项,也是sudoreplay(8)
您的播放器。
根据sudoers
手册页:
log_output:如果设置,sudo 将在伪 tty 中运行命令并记录发送到屏幕的所有输出,类似于 script(1) 命令。如果由于 I/O 重定向或由于命令是管道的一部分,标准输出或标准错误未连接到用户的 tty,则该输出也会被捕获并存储在单独的日志文件中。
在 sudoers 文件中,你可以输入如下内容:
User_Alias SHELL_ACCOUNTS = root,jack
Defaults: SHELL_ACCOUNTS log_output
或者基于组的日志记录
Defaults:%shellusers log_output
答案3
对于类似的事情:实时查看另一个用户执行的 Linux shell 命令?
答案4
您可以使用脚本命令。在要监视其 ssh 会话的用户的 .login 或 .profile 中创建一行。当他登录时,会生成一个脚本/日志,其中包含他的 I/O,为您提供运行的命令和这些命令的输出。实时情况下,您只需跟踪脚本并实时观察用户的操作即可。
无法粘贴供您参考的链接,但您可以直接在 Google 上搜索命令“脚本”,即可获得参考。