1) 오류 배경
맥북 로컬 환경에서 다운로드 폴더 안에 있는 index.html.txt 파일을 클라우드 vm으로 이동시키고자 했고,
인스턴스에서 디렉토리 생성 후 scp 명령어를 실행했으나 2번과 같은 오류 문구가 나오면서 scp가 정상적으로 동작하지 못했다.
scp -i /Users/felix.95/Downloads/kp-felix.pem /Users/felix.95/Downloads/index.html.txt rocky@210.109.52.182:/home/rocky/my_project/
2) scp: Received message too long 오류
아래와 같은 오류 메세지가 나오는 경우 해결 방법
scp: Received message too long 1281454964
scp: Ensure the remote shell produces no output for non-interactive sessions.
이 에러는 sftp 클라이언트가 서버로부터 잘못된 응답을 수신했다는 의미합니다.
vi 편집기로 이동해서 sshd_config 파일 설정을 변경해줍니다.
vi /etc/ssh/sshd_config
별도 설정을 하지 않았다면 Subsystem sftp /usr/libexec/openssh/sftp-server으로 되어 있을텐데
해당 부분을 # 주석 처리하고 Subsystem sftp internal-sftp 설정을 추가해준다.
이 조치는 sftp 세션에 대해 쉘이 실행되지 않도록 하여 정상적으로 연결을 수립할 수 있게 합니다.
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
3) scp: dest open "/home/rocky/my_project/index.html.txt": Permission denied 오류
다시 scp 명령어를 실행하면 이제 아래와 같은 오류 문구가 나온다.
scp: dest open "/home/rocky/my_project/index.html.txt": Permission denied
scp: failed to upload file /Users/felix.95/Downloads/index.html.txt to /home/rocky/my_project/
1) 권한 문제: scp 실행 시 Permission denied 오류가 발생했습니다. 이는 원격 서버에서 rocky 사용자가 해당 디렉토리에 쓰기 권한이 없음을 의미했습니다. my_project 디렉토리의 소유자가 root로 설정되어 있었기 때문에, rocky 사용자는 파일을 업로드할 수 없었습니다.
2) 디렉토리 권한 확인: 디렉토리의 권한을 확인해보니, drwxr-xr-x로 되어 있었고, 소유자가 root로 되어 있었습니다. 이는 rocky 사용자가 해당 디렉토리에 쓰기 권한이 없다는 것을 확인해 주었습니다.
ls -ld /home/rocky/my_project/
drwxr-xr-x. 2 root root 6 Oct 12 14:58 /home/rocky/my_project/
3) 해결 방법: 문제를 해결하기 위해 my_project 디렉토리의 소유자를 rocky 사용자로 변경하는 명령어(chown)를 사용했습니다. 이로 인해 rocky 사용자가 해당 디렉토리에 파일을 쓸 수 있게 되었고, 이후 scp 명령어로 파일을 성공적으로 전송할 수 있었습니다.
sudo chown rocky:rocky /home/rocky/my_project/
4) scp 명령어 재실행
scp 명령어를 재실행하여 정상적으로 파일이 전송된것을 확인한다.
'리눅스' 카테고리의 다른 글
리눅스 ssh 접속 오류 해결 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). (0) | 2024.10.15 |
---|---|
리눅스 텔넷 서버 구축하기 (0) | 2024.10.15 |