Linux

SSH 공개키 인증

옴뇸뇸 2022. 10. 12. 08:59

암호화


1. 대칭키 암호화 방식 : 암호화 = 복호화
  - 간단하고 쉬움
  - 통신 상대방이 많아지면 그만큼 키도 많아져야 함 (관리의 문제점 발생)
  - 키를 안전하게 전달 하는 방법의 문제

2. 공개키 암호화 방식 (RSA)
  - 암호화 키와 복호화 키가 다름
  - 한쌍의 키 : 암호화(공개키) + 복호화(개인키) (소인수 분해)
  - SSH 공개키 Login

     

         서버     : 공개키 (authorized_keys)
         접속자 : 개인키 (id_rsa)

 

 

ssh-keygen

  - ssh키 생성 명령어

 

  -  형식

        ssh-keygen

     

     * 옵션

         -f : 파일 지정

         -b : 비트 지정

         -N : 새로운 암호문구 제공

         -t : 타입 지정

         -C : 코멘트 지정

         -m : 파일 형식 지정

 

scp

  - ssh 원격 접속 프로토콜을 기반으로 한 파일 전송 프로토콜

 

  - 형식

      scp [옵션] [파일명] <원격지_id>@<원격지_ip>:<받을 경로>

     

      * 옵션

          -r : 디렉토리

 


실제 호스트 PC

디렉토리를 지정해 준다 따로 지정하지 않을 시 기본값 C:\Users\사용자이름/.ssh/id_rsa 로 생성된다

Passphrase는 추가로 사용할 암호이기 때문에 기본값도 없고 굳이 사용하지 않아도 된다

 

실제 호스트 PC

.ssh 디렉토리가 없을 시 디렉토리도 자동으로 생성되며 개인기 파일은 id_rsa, 공개키 파일은 id_rsa.pub으로 생성된다

 

아니면 옵션을 사용해서 생성되는 키의 이름, 경로, 파일 형식, 추가암호 등을 설정해서 한번에 생성해 줄 수도 있다

(이때 -N “”은 추가암호를 사용하지 않도록 공백으로 설정한 것이다)

 

scp 명령어로 실제 호스트 PC에서 생성한 ssh 키 중 공개키를 CentOS7에 authorized_key로 업로드 해준다

 

CentOS7에서 확인해 보면 파일이 잘 업로드 된 것을 확인할 수 있다

 

xshell 사용자 인증 설정

XShell에서 CentOS7 SSH 접속을 할 때 비밀번호가 아닌 공개키 인증 방식으로 변경 후 접속을 해본다

 

공개키와 매칭 되는 개인키를 등록해 주면

 

비밀번호 없이 키 인증으로 SSH 접속을 성공한 것을 확인할 수 있다