본문 바로가기

study/system

linux ssh 공개키 접속

 

보통 리눅스 서버접속시 ssh 프로토콜을 사용하게 되며, 접속 계정 + 패스워드로 접속하게 됩니다.
여러 서버를 운영하다보면 패스워드 관리도 힘들뿐만 아니라, 보안에도 그리 좋은 방법은 아닙니다.

그래서 ssh 공개키 접속을 하게 되는데요, 보통 아래와 같이 설정합니다.

key pair 생성
=> ssh-keygen -t rsa

아래는 예시

 

위에서 overwrite 가 나온건 저는 이미 생성했지만 예시를 위해 key pair 생성을 다시 하였기에 나오는 메시지 입니다.

Your identification has been saved in /home/mobaxterm/.ssh/id_rsa. => 프라이빗키(개인키)
Your public key has been saved in /home/mobaxterm/.ssh/id_rsa.pub. => 퍼블릭키(공개키)

이렇게 키가 생성되면 아래 위치에서 확인할수 있습니다.

 

2. 공개키 복사

이제 다음단계는 공개키를 내가 접속하려는 리눅스 서버에 복사해야합니다.
아래와 같은 커맨드로 서버에 접속하며 키를 복사합니다.

=> ssh-copy-id 접속계정@접속아이피

(보통은 루트 접속을 막지만 예시이기에 그냥 루트로 접속 했습니다)

아래는 예시

이렇게 되면 키가 복사 된걸 알수 있으며, 패스워드 없이 공개키접속을 할수 있게 됩니다.
복사된 공개키는 접속계정의 .ssh 폴더안에 있는 authorized_keys 파일 안에 저장되어 있습니다.

그 이후로는 ssh 계정@아이피 로 쉽게 접속할수 있으며, 제가 사용하는 mobaterm 의 경우 아래와 같이 세팅해놓으면 편하게 접속 가능합니다.

 

여기까지 설정한후 대상 서버는 패스워드 접속 옵션을 제거 해주면 됩니다.

/etc/ssh/sshd_config
PasswordAuthentication no 로 변경

systemctl restart sshd 후 패스워드로 접속해보면 접속이 되지 않습니다.
아래와 같이 퍼블릭키 관련 메세지가 뜨며 permission denied 가 됩니다.