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

관련 정보