loggingssh通信

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

你能告诉我如何logging所有的命令?

我的服务器在Ubuntu下。

史努比可以用来logging系统上运行的所有命令。 日志将被发送到系统日志。

不知道到底是怎么回事,我没有答案。 但是,有一些可能性:

  • 它使用密钥进行身份validation,并运行它在login时传递的命令 :这很容易。 向~/.ssh/authorized_keys中的条目添加一个command= ,它调用一个logging它所运行的命令的脚本,然后执行该命令。 透明,简单。
  • 它使用密钥进行身份validation,运行一个shell,并在shell中填充命令 :较难,但仍然很简单。 同样, command=~/.ssh/authorized_keys中运行一个你自己select的shell,可以是类似sudoshell的东西或者其他logging所有命令的东西(对于超级奖金,你甚至可以使用script来完全重放)。
  • 它使用密码 :在这里不允许使用 command=欺骗,你将不得不全力以赴,使用类似snoopy的东西logging发生的所有事情 – 但是除非这个程序是唯一使用SSH的程序,否则你可能会结束与很多日志。

如果closures源程序允许您编辑远程SSH参数,或者您可以将这些命令放入shell脚本中,则可以在远程服务器上的“脚本”命令中包装执行,如下所示:

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

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