상세 컨텐츠

본문 제목

[22] Linux 공개키 & 개인키

IT/Linux

by o_zeew 2022. 3. 4. 16:05

본문

(1) SSH key

(2) 개인키, 공개키 사용해보기

(3) 개인키, 공개키 실습


1. SSH key

 - 서버에 접속 시 비밀번호를 입력하지 않고 key를 제출하는 방식

 - 주로 비밀번호보다 높은 수준의 보안을 필요로 할 때 사용하거나 로그인 없이 자동으로 서버에 접속할 때 사용

 

클라우드 환경에서 사용하는 방식

 - 가상머신은 private ip만 사용 (외부에 공개가 되지 않음으로 안전함)

 - Private IP를 사용하는 가상머신들은 세팅이 어렵기 때문에 가상머신을 제어하는 가상머신을 추가로 만듬

 - 제어를 위한 가상머신에 공인 IP와 Private IP를 부여

 - 제어를 위한 가상머신을 AWS에서는 Bastion Host라 호칭 / Azure에서는 Jumpbox라 호칭

 - 공개키와 개인키를 발행해 접속하고 싶은 주체는 공개키를 가지며, 접속하고 싶은 대상에 공개키를 넣음

 - 공개키를 업로드 시킨 대상에는 ID와 패스워드를 몰라도 접속 가능

 


 

2. 개인키, 공개키 사용해보기

 

1. cmd 창을 열어 [ssh-keygen] 명령어를 사용해 3072 bit짜리 rsa방식의 키 생성 (bit가 높을 수록 안전)

-b 옵션으로 bit 지정, -f 파일명은 이니셜 / 패스워드는 엔터로 생략 가능

2. [dir] 명령어를 사용해 생성된 키 확인

파일명 : 개인키, 파일명.pub : 공개키

3. 메모장으로 키 확인

notepad + 파일명
개인키는 절대로 타인에게 공유 X
ssh-rsa 공개키라는 뜻 / 맨 뒤에 컴퓨터와 사용자 이름은 관계X 

4. 개인키로 접속하기 위해 서버에 공개키 업로드

root 디텍토리에 .ssh가 존재해야함 > 없는경우에는 생성
윈도우 cmd에서 [scp] 명령어를 사용해 공개키파일을 10.0.0.11 root 사용자의 /root/.ssh/ 디렉토리에 authorized_keys 이름으로 복사
생성 확인

5. 파일의 권한 변경

일반 사용자가 접근하지 못하도록 600으로 권한 변경

6. 설정 파일 수정

설정 변경을 위해 vi 편집기로 열기
root 로그인을 위해 PermitRootLogin yes 주석 해제
패스워드 로그인 방식을 해제

7. 시스템 재시작으로 설정 변경 적용

 

8. 패스워드 방식의 로그인 시도

로그인 불가능

9. -i 옵션을 사용해 개인키로 로그인 시도

개인키를 이용한 로그인 가능

  * 개인키로 로그인한 상태에서 서로 통신이 가능하며, ssh로 접속이 가능하다면 다른 가상머신 ssh로 접속 가능

패스워드 방식의 로그인 가능


 

3. 개인키, 공개키 실습

 

1. 모든 CentOS에 ssh key를 이용한 접속이 가능하게 설정합니다.
2. Host PC에서 VM으로 모든 ssh key 접속 가능하게
3. 첫번째 CentOS7-1에서 다른 VM으로 ssh key 접속 가능하게 설정합니다.
4. 주의하실 점은 모두 동일한 공개키와 개인키를 사용하셔야 합니다.
5. 절대로 다른 key pair 생성하지 마세요!


1. 모든 CentOS에 .ssh 디렉토리 확인 (없다면 생성 권한은 600)

CentOS7-2
CentOS7-3
CentOS7-4

2. 모든 CentOS에 공개키 업로드

CentOS7-2
CentOS7-3
CentOS7-4

3. 모든 CentOS에서 vi 편집기로 /etc/ssh/sshd_config 파일 수정

38번째 줄 주석 해제, 65번째 줄 yes > no 변경 후 저장
수정 후 시스템 재시작을 통해 적용

4. CentOS7-1이 다른 모든 VM으로 접속하기 위해서는 개인키 필요

[scp] 명령어를 사용해 CentOS7-1에 id_rsa 이름으로 개인키 복사
id_rsa 이름의 개인키 확인 가능
개인키에 root 이외의 사용자가 접근하지 못하도록 권한을 600으로 변경

5. Host PC로 접속

ssh를 사용해 모든 CentOS에 접속 가능

6. CentOS7-1로 접속

CentOS7-1에서 모든 CentOS로 접속 가능 확인

 

관련글 더보기