본문 바로가기
OS/Linux

[Linux] SCP Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 해결

by ganyga 2024. 2. 13.

(Local → Remote) 파일 옮기기 SCP명령어 Permission denied 해결 과정

에러 코드

scp Ga-Bastion.pem ec2-user@43.203.95.196:/home/ec2-user/

ec2-user@43.203.95.196: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
scp: Connection closed

 

scp 명령어 사용 의도)

Bastion Host에서 Private Subnet에 있는 WEB Server에 SSH로 접근하기 위해

내 로컬 컴퓨터(Mac OS)에 저장된 Private key(개인 키) 파일을 scp 명령어를 통해 로컬에서 원격지로 파일을 옮기려고 했음

이 과정에서 Permission denied (publickey, gssapi-keyex, gssapi-with-mic) 에러가 발생함

 

Pemission denied 이 발생할 수 있는 원인 찾기)

0. 키 파일 경로 확인 : 보내려고 하는 파일의 경로가 맞는지 확인

1. 키 파일의 권한 문제 : 개인 키 파일의 권한이 너무 열려있는 경우 SSH가 거부될 수 있음 

# 400으로 최소 권한만 주기
chmod 400 Ga-Bastion.pem

 

2. SSH 설정 문제 : 원격 서버에 대한 SSH 설정이 제대로 구성되어 있지 않은 경우, (ex. 보안 그룹 22 인바운 정책 허용 확인)

3. 서버에 SSH 접근이 제한된 경우 : 원격 서버에서 로컬 IP 주소에서의 SSH 접속을 허용하지 않는 경우

4. 사용자 ID(ec2-user)가 맞는지 확인

 

시도했던 방법)

1. 키 파일 권한 확인

2. SSH로 AWS EC2 Bastion Host에 접속이 잘 되는지 확인

3. 위 방법 모두 확인 후 SCP 명령어 옵션에 대해 찾아봄

scp
usage: scp [-346ABCOpqRrsTv] [-c cipher] [-D sftp_server_path] [-F ssh_config]
           [-i identity_file] [-J destination] [-l limit] [-o ssh_option]
           [-P port] [-S program] [-X sftp_option] source ... target

 

해결) 

scp 명령어 옵션에 대한 이해 부족으로 인한 문제였음

 

SCP -i [SSH로 접근할 개인 키 파일][보낼 파일] [사용자 ID]@[원격지 IP]:[받는 위치]

scp -i "Ga-Bastion.pem" "Ga-WEB.pem" ec2-user@43.203.95.196:/home/ec2-user/

Ga-WEB.pem                                   100% 1674   173.9KB/s   00:00

 

원격지에 접속해서 파일 업로드 됨을 확인  

ssh -i "Ga-Bastion.pem" ec2-user@43.203.95.196

[root@bastion ~]# cd /home/ec2-user/
[root@bastion ec2-user]# ls
Ga-WEB.pem