본문 바로가기

[Trouble shooting]

scp 전송 오류 Permission denied

반응형

ec2 상에서 생성한 Django 프로젝트를 계속해서 콘솔 창으로 개발하는 데에는 한계가 있으므로 프로젝트를 local PC에 옮기는데 발생한 오류이다.

 

Private Subnet에 있는 서버로 Public IP가 존재하지 않아 Filezilla를 통한 접속이 되지않는다.

따라서 Bastion host를 통해 ssh 접근해서 scp로 Web server의 프로젝트를 다운로드 받은 다음

Local pc에서 Filezilla를 사용해서 프로젝트를 다시 다운받을 예정이었다.

 

하지만 ssh로 접근하여 scp 명령어를 통해 프로젝트를 다운받으려는 도중 아래의 오류가 발생하였다.

 

root@172.16.0.36: Permission denied (publickey).

 

구글링을 해보니 scp 명령어에 -i 옵션을 추가해서 등록한 pem 키를 지정해주어야 했다.

ssh 접속할때와 마찬가지로 -i 옵션을 사용했지만 아래와 같은 다른 오류가 발생하였다.

 

보면 root계정보다는 Ubuntu 계정을 통해 로그인하라는 알림이 떠서 

ubuntu 계정을 사용해 scp 명령어를 사용했지만 또 다시 다른 종류의 오류가 발생하였다.

 

scp는 기본적으로 파일 하나만 옮겨주는 명령어로 디렉토리 전체를 복사하고 싶은경우 -r 옵션을 사용해야 한다.

 

그럼에도 아래와 같은 permission 오류가 다시 한번 발생하였다.

 

/scp/ysy_project 디렉토리는 다운받을 컴퓨터의 디렉토리로 여기서는 bastion host의 해당 디렉토리의 권한을 체크해보아야 한다.

 

bastion host에 접속하여 다운받을 위치의 디렉토리의 소유권을 ubuntu계정으로 전환하고 다시 시도해보니

 

성공적으로 디렉토리 전체를 다운받을 수 있었다.

 


마주친 오류들

 

error 1

root@172.16.0.36: Permission denied (publickey).

lost connection

 

해결방법 

scp 명령어에 -i 옵션을 통해 pem키를 지정해줌

 

scp -i .ssh/ysy-key -r /var/www/ysy_project ubuntu@172.16.0.36:/scp

 

 


error 2

Please login as the user "ubuntu" rather than the user "root".

 

해결방법

scp  명령어에 root 계정 접속대신 ubuntu 계정 사용

 

scp -i .ssh/ysy-key -r /var/www/ysy_project ubuntu@172.16.0.36:/scp

 


error 3

directory: not a regular file

 

해결방법

scp 명령어에 -r 옵션을 통해 디렉토리 전체를 sc다운로드

 

scp -i .ssh/ysy-key -r /var/www/ysy_project ubuntu@172.16.0.36:/scp

 


error 4

scp: /scp/ysy_project: permission denied

 

해결방법

다운받을 위치의 디렉토리의 소유권을 ubuntu계정으로 전환

 

chown ubuntu:ubuntu /scp/ysy_project

 

 

 

반응형

'[Trouble shooting]' 카테고리의 다른 글

AWS code deploy 실패 (CI/CD)  (0) 2024.12.10
AWS EC2에 yum 설치  (0) 2024.11.21
AWS codepipeline 도중 code deploy 실패  (0) 2024.10.23
Could not open lock file  (0) 2024.05.21
Ubuntu ssh 접속 Permission denied  (0) 2024.05.21