[Linux] SSH Key 인증으로 비밀번호 없이 접속

lakhyun.kim·2021년 12월 2일
0

SSH(Secure Shell)는 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜이다.

기존의 유닉스 시스템 셸에 원격 접속하기 위해 사용하던 텔넷은 암호화가 이루어지지 않아 계정 정보가 탈취될 위험이 높으므로, 여기에 암호화 기능을 추가하여 1995년에 나온 프로토콜이다.

SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다. 셸로 원격 접속을 하는 것이므로 기본적으로 CLI 상에서 작업을 하게 된다.

기본 포트는 22번이다.

ssh-Keygen 사용해서 비밀번호 없이 접속하기

1. 출발지 서버에서 키 값 생성

ssh-keygen –t rsa -> Enter 3번

-t 옵션으로 어떤 타입의 암호화 방식을 사용할 것인지 지정할 수 있다.

엔터를 누르면 어디에 key를 생성하여 저장할지를 묻는다.
엔터를 누르면 기본경로에 저장된다. 다른 경로를 원한다면 입력해주면 된다.
엔터를 누르면 ssh를 사용할때 비밀번호를 사용할지를 묻는다.

key를 확인하고 싶다면 저장한 경로로 이동하면 된다.

/home/계정명/.ssh 디렉토리에서 id_rsa / id_rsa.pub 값 확인 가능

id_rsa가 개인키, id_rsa.pub가 공개키이다.
접속하고자 하는 서버에 공개키을 등록해 놓으면 SSH로 접근할 때 개인키와 비교하여 인증한다.

2. scp를 통해 생성된 키값을 목적지 서버로 전송(id_rsa.pub 파일만 전송)

scp –P 41 id_rsa.pub 계정명()@xxx.xxx.xxx.xxx:/home/계정명
목적지 서버 패스워드 입력 필요

3. 목적지 서버에서 전달받은 키 등록

cat /home/계정명/id_rsa.pub >> /home/계정명/.ssh/authorized_keys

만약 .ssh폴더가 없다면 새로 만들고 chmod 700로 설정해준다. (중요한 정보로 소유자 외에 접근 불가능하도록)
전달받은 id_rsa.pub를 authorized_keys 파일에 등록한다.

[테스트] 출발지 서버에서 하기 명령어 실행 했을 때, 패스워드 입력 절차 없이 sftp로 접속 되는지 확인

sftp –P 41 계정명@xxx.xxx.xxx.xxx
profile
기록하자.

0개의 댓글