Soy's Devlog

[Mac] ssh 접속 시 permission denied (publickey) 본문

Linux/Ubuntu

[Mac] ssh 접속 시 permission denied (publickey)

소이리 2021. 5. 20. 01:14

우리가 원격서버에 접속해야 할 경우 서버에 아무나 접속이 가능하도록 구성되어 있지는 않을 것이다.

당연히 보안장치가 있을건데 여기서는 ssh를 이용한 접속에 대해 간단히 정리 했다.

 

ssh key인증 방식은 단순비밀번호만 입력 후 원격서버에 접속하는 것은 아니고,

인스턴스 생성 시 쌍으로 생성 된 공개키와 비밀키를 서버 접속 시 대조하여 일치하는 경우 접속을 허용하는 보안 프로토콜의 한 종류이다.

 

ssh서버가 포함된 인스턴스를 생성하면 비밀키(private key)를 발급해 준다.

pem/ppk 파일이 그 것인데, 원격 서버에 접속 시 필요한 비밀번호와 같은 개념으로 이해하면 된다.

 

 

ssh를 통해 클라이언트가 특정 호스트에 첫 접속을 시도할 때 ssh는 서버에서 공개키를 가져올 지 묻는다. 대조해야 하니까...

'yes'라고 응답 할 경우 공개키를 가져와 대조를 하겠지만, 여기서 끝이 아니다 !

 

>$ ssh 접속명@호스트    명령어로 접속을 시도하면 아래와 같이permission이 거부 된다. 대조할 비밀키가 없기 때문이지..!

접속하려면 >$ ssh -i 비밀키.pem 접속명@호스트  이렇게 pem파일을 수동으로 입력해 주면 접속 되는 것을 확인할 수 있다.

 


# 번외

 

1. 로컬pc 공개키 ssh서버에 추가 

이건 참고용인데, 매번 이렇게 pem파일까지 수동으로 입력해 주려면 귀찮기도 하고...아예 ssh 서버에 클라이언트(로컬)PC의 키를 등록해주면 다음엔 해당 클라이언트는 인증받을 필요가 없으므로 등록해 주면 편하게 사용할 수 있다.

 

~/.ssh/id_rsa.pub 을 열어 로컬pc의 공개키를 확인하여 복사해준 후,

접속하고자 하는 서버의 .ssh/authorized_keys 를 열어 붙여넣기 한 후 저장해 준다.

이렇게 되면 pem 파일 없이도 접속명과 호스트 만으로 접속이 가능해진다!

 

2. pem 파일 권한 관련

>$ ssh -i 비밀키.pem 접속명@호스트   실행 후 아래와 같이 private key files 권한에러가 나는 경우가 있다

이러한 에러는 pem파일의 권한을 변경 후 재실행 해주면 간단히 해결 가능하다 

>$ chmod 400 ./(filename.pem)

 

 

Comments