내 애플리케이션(JetBrains CLion)은 내 원격 서버에 연결하고 SFTP
거기에 파일을 배치합니다. 불행하게도 파일은 0바이트로 채워져 있습니다. 무엇이 잘못되었는지 추적하고 싶습니다.
SFTP
내 서버에서 무언가를 실행하여 세션을 실시간으로 모니터링하고 무슨 일이 일어나고 있는지 확인할 수 있나요 ? 나는 root
서버에 있습니다. 서버는 Ubuntu 16을 실행합니다.
SFTP
PS 내가 직접 파일을 실행하면 put
괜찮습니다.
클라이언트 측에서는 로그에 어떤 문제도 표시되지 않습니다. 단지 일부 세션과 put
출력 이 stat
있는 유사한 명령이 있을 뿐입니다 Ok
. 그래서 서버 측도 디버깅하고 싶습니다.
답변1
그만큼OpenSSH 서버라는 프로그램을 사용합니다SFTP 서버SFTP 세션의 경우. sftp-server
로깅을 제어하는 몇 가지 옵션이 있습니다.
-f log_facility
sftp-server에서 메시지를 기록할 때 사용되는 기능 코드를 지정합니다. 가능한 값은 DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7입니다. 기본값은 AUTH입니다.-l 로그_레벨
sftp-server에 의해 기록될 메시지를 지정합니다. 가능한 값은 QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 및 DEBUG3입니다. INFO 및 VERBOSE는 sftp-server가 클라이언트를 대신하여 수행하는 트랜잭션을 기록합니다. DEBUG와 DEBUG1은 동일합니다. DEBUG2 및 DEBUG3은 각각 더 높은 수준의 디버깅 출력을 지정합니다. 기본값은 오류입니다.
이를 적용하려면 시스템의sshd_configSubsystem
파일을 열고 SFTP 라인을 찾으세요 . 다음 두 줄 중 하나처럼 보일 것입니다.
Subsystem sftp /path/to/sftp-server
Subsystem sftp internal-sftp
무엇이든 끝에 로깅 인수를 추가합니다.
Subsystem sftp /path/to/sftp-server -l DEBUG3
편집한 후에 sshd_config
는 다시 시작해야 sshd
변경 사항이 적용됩니다.
이 모든 작업을 완료하면 SFTP 세션이 디버그 정보를 syslog에 기록하기 시작해야 합니다. 디버그 메시지를 사용하여 클라이언트가 보낸 명령과 SFTP 서버가 수행하는 파일 시스템 작업을 추적할 수 있습니다.
sftp-server 프로그램은 C로 작성되었으며 소스 코드를 찾을 수 있습니다.여기. 이해할 수 있다면 로그 메시지를 이해하는 데 소스 코드가 도움이 될 것입니다.