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
).