Logs

scp:保留事務日誌?

  • February 28, 2017

假設您scp有一個文件到遠端伺服器。

scp /file root@<ip>:/file

在遠端伺服器上 SCP 看到一個名為/file

被歸類為“傳入”

可以將此資訊回顯到文件中嗎

echo "incoming:/file" >> /scp_logs

?

更新:

或者也許..可以scp配置為在將文件傳輸到遠端伺服器之後(在它與伺服器斷開連接之前)也執行命令?

這樣我可以附加

echo "incoming:/file" >> /scp_logs

在傳輸文件時向它發送。

不,是的。使用一些遠端命令(也)scp發出正常ssh會話scp,但它在二進製文件中被硬編碼。因此,可以修改客戶端二進製文件以發送您的echo命令。

或者使用腳本在伺服器上強制執行此策略,該ForceCommand腳本將檢查SSH_ORIGINAL_COMMAND環境變數,如果是scp,它將參數儲存在日誌中。

但是當你執行 scp 命令時,這並不能解決問題scp file1 file2 server:/path/,因為伺服器只會看到遠端路徑。要獲得實際上傳的文件的真實路徑,您需要修改scp伺服器上的二進製文件來為您進行日誌記錄(在open()呼叫附近的某個地方)。

因此,如果您正在尋找某種可審核的文件上傳方式,那scp不是一個可行的方法。使用 會更好sftp,它會記錄所有開箱即用的命令(一旦啟用LogLevel VERBOSE)。

引用自:https://unix.stackexchange.com/questions/348212