scp:保留事务日志?

scp:保留事务日志?

假设您有scp一个文件到远程服务器。

scp /file root@<ip>:/file

在远程服务器上 SCP 看到一个名为/file

即被归类为“传入”

可以将此信息回显到文件中吗

 echo "incoming:/file" >> /scp_logs

更新:

或者也许......可以scp配置为在将文件传输到远程服务器之后(在与服务器断开连接之前)运行命令?

这样我就可以附加

 echo "incoming:/file" >> /scp_logs

传输文件时使用它。

答案1

不,又是。使用某些远程命令(也)发出正常会话,scp但它是硬编码在二进制文件中的。因此,可以修改客户端二进制文件以发送您的命令。sshscpecho

或者使用脚本在服务器上强制执行此策略ForceCommand,该脚本将检查SSH_ORIGINAL_COMMAND环境变量,并且在 的情况下scp,它将把参数存储在日志中。

但是,当您执行 scp 命令(例如 )时,这并不能解决问题scp file1 file2 server:/path/,因为服务器只会看到远程路径。为了获得文件实际上传的真实路径,您需要修改scp服务器上的二进制文件来为您进行日志记录(在open()称呼)。

因此,如果您正在寻找某种可审核文件上传的方法,scp这不是一个可行的方法。使用 会更好sftp,它会立即记录所有命令(一旦启用LogLevel VERBOSE)。

相关内容