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 |