我有一个闭源程序,它通过 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 中