SFTP 'Received message too long' 에러 처리

by ANTIBIOTICS posted Jan 10, 2023
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

 

1.png

 

secure copy 명령어를 사용해 운용중이던 데비안 서버에서 파일을 받아오려고 하자, 다음과 같은 에러가 나타나며 강제로 연결이 종료되었습니다.

 

scp: Received message too long 3801516258
scp: Ensure the remote shell produces no output for non-interactive sessions.

 

이 에러는 sftp 클라이언트가 서버로부터 잘못된 응답을 수신했다는 의미입니다.

 

sftp 서버와 클라이언트가 세션 수립 시, '.bashrc', '.profile' 등 서버의 쉘 기본 스크립트 (startup script)에서 발생하는 출력을 클라이언트가 sftp 메시지로 파싱하려 하기 때문에 에러가 발생합니다.

 

제 경우는 해당 데비안 서버에서 쉘 실행시 시스템 요약 정보를 출력하도록 설정해 두었는데 이것이 문제가 된 것 같습니다.

 

2.png

 

ssh 서버에서 /etc/ssh/sshd_config 파일을 열어, 위와 같이 "Subsystem sftp /usr/lib/openssh/sftp-server" 부분을 주석 처리하고 새로 "Subsystem sftp internal-sftp" 를 추가합니다.

 

이 조치는 sftp 세션에 대해 쉘이 실행되지 않도록 하여 정상적으로 연결을 수립할 수 있게 합니다.