✔️ SSH (Secure Shell Protocol)
SSH란 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신하기 위해 사용하는 프로토콜이다.
대표적인 사용의 예는 다음과 같다.
- 데이터 전송
ex) 깃 허브 원격 저장소, 소스 코드를 깃헙에 푸쉬할 때 SSH를 활용해 파일을 전송한다. - 원격 제어
ex) AWS와 같은 클라우드 서비스는 인스턴스 서버에 접속해 해당 머신에 명령을 내리기 위해 SSH를 통한 접속을 해야한다.
SSH는 22번 포트를 사용한다.
제어의 주체가 되는 컴퓨터에는 SSH Client가 설치되어 있어야 하며 제어의 대상이 되는 원격지 컴퓨터에는 SSH Server가 설치되어 있어야 한다.
윈도우는 SSH Client를 제공하지 않아 Xshell이나 PuTTY와 같은 프로그램을 이용해 다른 컴퓨터에 접속할 수 있다.
유닉스 계열의 운영체제에서 SSH Server로 가장 많이 사용하는 것은 OpenSSH이다.
✔️ SSH 통신 방법
Public Key and Private Key
- SSH는 다른 컴퓨터와 통신할 때 일반적으로 사용하는 비밀번호 입력을 통한 접속을 하지 않는다.
- 기본적으로 SSH는 한 쌍의 Key를 통해 접속하려는 컴퓨터와 인증 과정을 거친다.
Public Key
- 공개되어도 비교적 안전한 Key
- 이 키를 통해 메세지 전송 전 암호화를 한다.
- 암호화는 가능하나 복호화는 불가능하다.
Private Key
- 절대로 외부에 노출돼서는 안되는 Key
- 컴퓨터 내부에 저장하게 되어 있다.
- 암호화된 메세지를 복호화 할 수 있다.
✔️ SSH 연결 절차
한쌍의 Public, Private Key는 수학적인 관계를 맺고 있으며 이를 통해 다른 컴퓨터와 통신 하기위한 절차는 다음과 같다.
① 먼저 Public Key를 통신하고자 하는 컴퓨터에 복사하여 저장한다.
② 클라이언트 컴퓨터에서 접속 요청을 할 때 서버 컴퓨터에 복사되어 저장된 Public Key와 클라이언트의 해당 Public Key와 쌍을 이루는 클라이언트 Private Key와 비교해 서로 한 쌍의 Key인지의 여부를 검사한다.
③ 관계를 맺고 있는 Key라는 것이 증명되면 비로소 두 컴퓨터 사이에 암호화된 채널이 형성되어 메세지를 암호화하고 복호화하며 데이터를 주고 받을 수 있게 된다.
'CS > 네트워킹' 카테고리의 다른 글
인캡슐레이션과 디캡슐레이션 (0) | 2022.09.28 |
---|---|
OSI 7 Layer - 데이터 플로 계층 (1) | 2022.09.27 |
[네트워킹] ICMP (Internet Control Message Protocol) (0) | 2022.03.22 |
[네트워킹] FTP (File Transfer Protocol) (0) | 2022.03.22 |
[네트워킹] Proxy (프록시)란 ? (0) | 2022.03.18 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!