SSH란?

May Han·2022년 1월 27일
9

매일 사용하지만 무심했던.. 어떻게 동작하는지 자세히 알고 싶어 공부 및 작성하게 되었습니다.


SSH (Secure Shell Protocol)

  • Secure Shell Protocol은 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 public network를 통해 서로 통신할때 보안적으로 안전하게 통신하기 위해 사용하는 프로코콜이다.

  • 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜

  • 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계

  • 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다.

  • 기본적으로는 22번 포트를 사용

Telnet, rlogin, rsh는 왜 보안에 취약한가?
FTP나 Telnet 프로토콜은 민감한 정보를 직접 네트워크를 통해 넘기기 때문에 누구나 해당 정보를 열어볼 수 있어 보안에 상당히 취약하다.


대표적인 SSH 사용 예시

  1. 데이터 전송
  2. 원격 제어



SSH가 안전하게 통신하는 이유

SSH는 단순한 평문 전달 방식이 아닌 대칭키 암호화 방식(or 비대칭키 암호화 방식)을 사용 합니다.
대칭키 암호화 방식은 클라이언트와 서버는 공개키(publick key)와 개인키(private key)를 통해 접속하려는 컴퓨터와 인증 과정을 거치게 됩니다. 때문에 한쌍(pair)의 SSH 키가 필요합니다.

1. Publick Key (공개키)

  • 공개되어도 비교적 안전한 Key이며 공개키를 통해 메시지를 전송하기 전 암호화를 하게 됩니다.
  • 공개키로 암호화는 가능하지만 복호화는 불가능합니다.

2. Private Key (개인키)

  • 절대로 외부에 노출이 되어서는 안되는 Key
  • 본인의 컴퓨터 내부에 저장하게 되어 있습니다.
  • 개인키를 통해 암호화된 메시지를 복호화 할 수 있습니다.



SSH 연결 과정

  1. 클라이언트가 서버에 SSH 접속 요청을 보낸다.
  2. 서버는 클라이언트의 공개키로 암호화한 메시지를 클라이언트에게 인증 용도로 내려준다.
  3. 클라이언트는 한 쌍으로 만들어졌던 비밀키를 이용해 암호화된 메시지를 복호화하여 동일하면 인증이 완료된다.
  4. Paire Key라는 것이 인증되면 두 컴퓨터 사이에 암호화된 채널이 형성이 되어 메시지를 암호화하고 복호화하며 데이터를 주고 받을 수 있게 된다(비대칭 공개키 방식).



ssh-keygen

ssh-keygen는 key pair를 생성하는 명령이며 OpenSSH 라이브러리에 포함되어 있습니다. ssh-keygen 명령은 비밀키를 먼저 만들고 그 값과 passphrase를 활용해 공개키를 만듭니다.
만들어진 key pair는 시스템 자동 로그인, SSO(Single Sign-On) 또는 서버 호스트 사설 인증 등에 사용할 수 잇습니다.


Reference

SSH란?
https://baked-corn.tistory.com/52

SSH 명칭부터 접속까지 한 번에 이해하기 1
https://library.gabia.com/contents/infrahosting/9002/

SSH-KEYGEN으로 인증키 생성하는 원리와 방법 https://brunch.co.kr/@sangjinkang/52

Secure SHell, SSH - Wiki
https://ko.wikipedia.org/wiki/%EC%8B%9C%ED%81%90%EC%96%B4_%EC%85%B8

profile
🚢 크루즈승무원 출신 백엔드 개발자, 기록하는 것을 좋아합니다.

0개의 댓글