VM & 운영체제/리눅스

리눅스로 SSH 개인키, 공개키 만들기

knxwledge 2025. 2. 17. 16:45

Blinux2라는 컴퓨터에 st01이라는 계정을 가진 사람이 있다고 가정하자. 이 사람은 Blinux1이라는 컴퓨터에도 st01이라는 계정을 가지고 있는데, Blinux2에는 바로 접속이 가능하나 Blinux1에는 원격 접속만 할 수 있다. 그래서 매번 Blinux2에 로그인한 뒤 Blinux1에 SSH로 연결해서 ID, 비밀번호를 입력해야 한다. 이 때 st01이 Blinux1에 개인키, Blinux2에 공개키를 저장하여 비밀번호 없이 로그인할 수 있는 방법을 알아보자. 

0. 현재 세팅

Blinux1

  • OS: Rocky Linux 8.60
  • IP: 192.168.10.191/24
  • 쓸 계정: st01
  • 역할: SSH 서버

Blinux2

  • OS: Rocky Linux 8.60
  • IP: 192.168.10.192/24
  • 쓸 계정: st01
  • 역할: SSH 클라이언트

I. 클라이언트에서 키 생성하기

1. Blinux2에 st01로 로그인한다.

 

2. SSH 키를 생성한다.

ssh-keygen -t rsa -b 1024   # 형식 : ssh-keygen [-t 암호화 방법] [-b 비트수]

 

 

3. 키 파일을 저장할 위치를 선택하라는 프롬프트가 뜬다. 엔터를 눌러 기본 설정인 $HOME/.ssh/id_rsa에 저장시킨다. 

 

4. 그러면 디렉토리를 생성했다는 말과 함께 passphrase를 입력하라고 뜬다. Passphrase는 개인키를 아무나 볼 수 없도록 보호하는 장치다. 

Passphrase를 정해서 입력해준다.

 

5. 개인키는 $HOME/.ssh/id_rsa에, 공개키는 $HOME/.ssh/id_rsa.pub.에 저장했다는 정보가 뜬다.

 

6. .ssh 디렉토리에 들어가 파일 목록을 확인하면 id_rsa, id_rsa.pub이 만들어 진 것을 볼 수 있다.

 

 

II. 서버에 공개키 넣기

1. 다음 명령어를 통해 서버에 공개키를 넣는다.

ssh-copy-id st01@192.168.10.191   # 형식: ssh-copy-id 계정@ip

 

여기서 계정명은 클라이언트에서의 계정명과 달라도 상관 없다.

 

2. Are you sure you want to continue connecting?이라고 뜬다.

 

3. Yes라고 입력한다.

 

4. Blinux1의 IP에서 st01의 비밀번호를 입력하라는 프롬프트가 뜬다.

Blinux1에서의 비밀번호를 입력한다. Blinux2에서의 비밀번호나 개인키 Passphrase와는 관계가 없다.

 

5. Key가 추가되었다는 (added) 정보가 나온다.

 

6. 이제 SSH로 Blinux1에 접속해 본다.

ssh st01@192.168.10.191   # 형식: ssh 계정@ip

 

7. 키에 대한 Passphrase를 입력하라는 프롬프트가 뜬다. 

 

개인키 passphrase를 입력한다.

 

8. Blinux1에 로그인 된 것을 확인할 수 있다.