我正在通过 ssh 运行 rsync 到远程机器。运行命令后,我想确认我发送到远程机器的命令是实际运行的命令。这是否记录在某处?远程机器是一台 Debian 机器。
答案1
需要明确的是,使用 rsync/rsyncd 可能与此不同;您正在运行 rsync -> ssh -> sshd -> rsync,因此 rsyncd 不涉及。
默认情况下,rsync 不会记录其执行的操作。如果您想知道过去执行过哪些操作,sshd 可能会记录 rsync 发出的命令,但可能性不大。
如果您只是想知道命令是什么,请手动运行 rsync,并指定“rsh='ssh -v'”以启用详细输出,并观察“debug1:发送命令:rsync --server ...”。
您可以通过添加以下内容来设置强制记录命令:
command="logger -p user.notice $SSH_ORIGINAL_COMMAND; $SSH_ORIGINAL_COMMAND" ssh-rsa AAAAB3NabcdABCD... rsa-key-bla
到 authorized_keys 文件,针对用于登录的密钥。您可能只想为 rsync 创建一个密钥。
实际上,强制执行命令会导致写入该命令的日志。所以这可能就是您所需要的。