scp
リモートサーバーにファイルがあるとします。
scp /file root@<ip>:/file
リモートサーバーでは、SCPは次のファイルを表示します。/file
つまり、「受信」に分類されます。
この情報をファイルに反映できますか?
echo "incoming:/file" >> /scp_logs
?
修正する:
それとも...scp
ファイルをリモートサーバーに転送した後(サーバーから切断する前に)コマンドを実行するように構成できますか?
これにより追加できます。
echo "incoming:/file" >> /scp_logs
ファイルを転送するときに使用してください。
答え1
もうダメだ。いくつかのリモートコマンドを使用して通常のセッションを実行しますscp
が、バイナリにハードコードされています。したがって、クライアントバイナリを変更してコマンドを送信できます。ssh
scp
echo
または、スクリプトを使用してサーバーにこのポリシーを適用すると、スクリプトはForceCommand
環境SSH_ORIGINAL_COMMAND
変数を確認し、その場合はscp
パラメータをログに保存します。
ただし、scpコマンド(たとえば)を実行すると、scp file1 file2 server:/path/
サーバーはリモートパスのみを表示できるため、問題は解決されません。ファイルが実際にアップロードされる実際のパスを取得するには、scp
サーバーのバイナリを変更してロギングを実行する必要があります(open()
呼ぶ)。
したがって、ファイルのアップロードを監査する方法を探している場合、scp
この方法は適切ではありません。を使用する方が良いでしょうsftp
。すべてのコマンドをすぐに記録します(有効になったらLogLevel VERBOSE
)。