记录 ssh 通信

记录 ssh 通信

我有一个闭源程序,它通过 SSH 调用服务器并执行一组命令。

你能告诉我如何记录所有命令吗?

我的服务器在Ubuntu下。

答案1

史努比可用于记录系统上运行的所有命令。日志将发送到 syslog。

答案2

不知道具体情况如何它正在做它的事情,我无法给出一个答案。但是,有几种可能性:

  • 它使用密钥进行身份验证,并运行登录时传递的命令:这很简单。command=在条目中添加一个~/.ssh/authorized_keys,调用一个脚本来记录它运行的命令,然后执行该命令。透明、简单。
  • 它使用密钥进行身份验证,运行 shell,并将命令塞入 shell:比较难,但仍然很简单。同样,command=运行~/.ssh/authorized_keys你选择的 shell,可以是sudoshell或者其他记录所有命令的东西(对于超级奖励技巧,你甚至可以使用它script来实现完全的重玩性)。
  • 它使用密码command=这里不允许使用任何诡计,你必须全力以赴,使用类似史努比记录发生的所有事情——但除非这个程序是唯一使用 SSH 的程序,否则您最终可能会得到大量的日志。

答案3

如果闭源程序允许您编辑远程 SSH 参数或者您可以将命令放入 shell 脚本中,那么您可以像这样在远程服务器上围绕“脚本”命令执行:

ssh 192.168.15.200 'script ps.log -c "ps -ef"'

在这种情况下,输出ps -ef将保存到文件 ps.log 中

相关内容