SSH(Secure Shell Protocol)
SSH는 네트워크 프로토콜 중 하나로, 데이터 전송과 원격 제어같은 통신을 할 때
강력한 인증 방법을 통해 안전하게 통신할 수 있는 기능을 제공합니다.
주로 Linux와 Unix 시스템에서 사용되며 22번 포트를 사용한다는 특징이 있습니다.
MacOS는 Unix 기반이기 떄문에 기본적으로 터미널에서 SSH키를 생성해 사용할 수 있지만,
윈도우를 SSH Server로 사용하는 것은 일반적이지 않고 별도의 프로그램을 설치해 SSH Client로 이용할 수 있습니다.
SSH의 통신방법
SSH가 등장하기 전 주로 원격 통신을 위해 Telnet을 이용했습니다.
이 둘중 어떤 것을 사용하더라도 접속 환경이 크게 달라지지 않지만,
Telnet에 치명적인 결함이 발견된 후 되도록이면 Telnet을 사용하지 않는 분위기가 조성되었습니다.
그 결함은 바로 중간에 패킷을 가로채 확인해보면 별도의 암호화가 이루어있지 않아
민감한 정보나 데이터가 그대로 노출된다는 점이었습니다.
이러한 이유로 인해 보안적으로 안전하게 통신하기 위한 프로토콜인 SSH가 탄생했습니다.
SSH는 보안을 위해 기본적으로
개인키(Private Key)와 공개키(Public Key)
한쌍을 통해 인증과정을 거칩니다.
개인키(Private Key)는 서버에 접속할 사용자의 로컬에 저장되며,
암호화된 메세지를 복호화하는 중요한 역할을 맡고 있기 때문에 외부로의 노출은 절대로 피해야합니다.
공개키(Public Key)는 접속할 서버에 등록해놓아 전달할 데이터를 전송 전 암호화하는 역할을 하며,
이름 그대로 외부에 공개되어도 안전합니다.
이러한 한쌍의 키는 접속 요청 시
서버에 저장된 공개키와 한쌍을 이루는 개인키가 클라이언트에 존재하는지 확인 후
서로 매칭이 된다면 인증에 성공하고 서버에 접속이 됩니다.
서버에 접속 후 통신을 하다 중간에 누군가 패킷을 탈취하더라도
개인키를 지니고 있지 않기 때문에 암호화된 데이터를 복호화할 수 없어 해석할 수 없게 됩니다.
'CS' 카테고리의 다른 글
DNS(Domain Name Server), 네임서버란? (0) | 2022.07.13 |
---|---|
전송계층의 프로토콜 TCP vs UDP (2) | 2022.07.07 |
HTTP의 구조 (0) | 2022.03.05 |
기본 자료구조에 대해 (0) | 2022.02.20 |
댓글