[개념정리]SSH

Suyeon·2024년 5월 10일

개념정리

목록 보기
8/9

SSH(Secure Shell Protocol)란?
컴퓨터가 원격 시스템에 안전하게 접속하고 관리할 수 있도록 하는 보안 프로토콜

특징

  • 원격 시스템에 로그인할 때, 사용자 이름과 비밀번호 대신 암호화된 키 기반의 인증 사용
  • 모든 데이터 전송은 암호화하여 보안을 유지
  • SCP(Secure Copy Protocol)나 SFTP(Secure File Transfer Protocol)를 통해 파일을 안전하게 전송할 수 있음
  • 서버/클라이언트에 OpenSSH 설치되어 있어야 함
    ** 일반적으로 Unix 기반 운영체제에는 OpenSSH가 기본적으로 포함되어 있음
  • 연결 방식은 PASSWORD/KEY 가 있음(PASSWORD는 보안에 취약하기 때문에 KEY 방식 권장)

OpenSSH 설치 확인

 ssh -V

SSH Keypair에 대하여

  • SSH Keypair는 public key와 private key로 이루어짐(비대칭키.서로 다른 두개의 키란 의미)

  • 서버/클라이언트 모두 SSH Keypair를 가지고 있음(형태는 다름)

  • SSH 접속과정


    출처 ssh.com

  1. 클라이언트는 서버에 원격 접속하기 위해 접속 요청을 보낸다
  2. 서버는 자신의 공개키를 클라이언트에게 전송한다
  • 서버에서 받은 공개키는 로컬에 저장됨
  1. 클라이언트와 서버는 여러 parameter를 주고 받으며 보안 채널을 확립한다
    3-1. 서버 인증(올바른 서버에 접속하려는 것인지 검증 필요)
  • 클라이언트가 SSH 서버에 접속을 시도

  • 서버는 클라이언트에게 자신의 공개 키 제공

  • 클라이언트는 서버로부터 받은 공개키가 로컬에 저장된 공개키와 같은지 검증하며 올바른 서버 판단

  • 클라이언트는 서버의 신원이 확인되면 접속을 계속함.

    3-2. 클라이언트 인증(서버에 대한 올바른 접근 권한을 가지고 있는지)

  • 클라이언트는 자신의 개인 키를 사용하여 서버에 대한 접속 요청을 암호화함

  • 암호화된 접속 요청은 서버로 전송.

  • 서버는 클라이언트의 접속 요청을 받고, 클라이언트의 공개 키를 사용하여 해당 요청을 해독

  • 서버는 클라이언트의 공개 키를 사용하여 해당 요청이 유효한지 확인합니다.
    유효한 경우, 서버는 클라이언트에 대한 접속을 승인하고 클라이언트와의 안전한 통신이 시작됩니다.

  1. 클라이언트가 서버에 원격 접속할 수 있다
    => 공개 키를 통해 서버의 신원을 확인하고, 개인 키를 사용하여 클라이언트가 서버에 대한 접속을 암호화하여 안전한 통신 채널을 설정
  • SSH Keypair 생성하는 법(Client)
    ** AWS EC2 인스턴스를 생성 시 생성하면서 키페어를 발급받을 수도 있음
 Terminal > ssh-keygen -t rsa -b 2048 -C "suyeon@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/suyeon/.ssh/id_rsa): {directory}/{file_name}
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:
Your identification has been saved in {directory}/{file_name}
Your public key has been saved in {directory}/{file_name}.pub
The key fingerprint is:
SHA256: xxxxxxxxxxxxxxxxxx suyeon@example.com
The key's randomart image is:
+---[RSA 2048]----+
|              E+ |
|             +..o|
|      .   . o.*. |
|     . o +   B+o.|
|      o S o oo*o |
|       + * . o+o |
|    . . * . oo   |
|   o.o = = +     |
|   o=.=o+   =o   |
+----[SHA256]-----+
  1. SSH 키 생성 명령어 입력
    -t rsa: RSA 알고리즘을 사용하여 키 생성
    -b 2048: 2048비트의 키 생성. 보안 수준을 높이기 위해 더 큰 값도 사용 가능
    -C "suyeon@example.com": SSH 키에 연결할 이메일 지정(선택사항)
  2. SSH 키 저장 위치 지정
  3. SSH 키 암호 설정(선택사항)
  4. SSH 키 생성 확인
    {keypair} : 개인키
    {keypair}.pub : 공개키
profile
안녕하시렵니까😘

0개의 댓글