SSH(Secure SHell)- 시큐어 셸
SSH는 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜
대표 적인 사용 예는 데이터 전송, 원격 제어등이 있다.
기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다.
*Shell(쉘): 명령어와 프로그램을 사용할 때 쓰는 인터페이스를 말한다. 커널과 사용자 간의 다리 역할을 하는 것,
사용자로부터 명령을 받아 그것을 해석하고 실행하는 역할을 한다.
SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다.
클라우드 서비스에서 제공하는 서버는 기본적으로 원격 접속을 해서 접근하고 사용기때문에 NBP나 AWS와 같은 CSP(Cloud Service Provider, 클라우드 서비스를 제공하는 곳)에서 서버 생성시 필수적으로 SSH 보안 과정을 거친다.
SSH의 작동원리
사용자(클라이언트)와 서버(호스트)는 각각의 키를 보유하고 있으며,
이 키를 이용해 연결 상대를 인증하고 안전하게 데이터를 주고 받는다.
여기서 키를 생성하는 방식이 두 가지가 있는데, ‘대칭키’와 ‘비대칭키(또는 공개 키)’ 방식이다.
SSH 키(Key)는 공개키(public key)와 비공개키(private key)로 이루어진다.
키를 생성하면 공개키와 비공개키가 만들어진다.
Public Key를 통해 메시지를 전송하기 전 암호화를 한다. Public Key로는 암호화는 가능하지만 복호화는 불가능하다.
그리고 이와 쌍을 이루는 Private Key는 절대로 외부에 노출이 되어서는 안되는 Key로
클라이언트 컴퓨터 내부에 저장하게 되어있다. 이 Private Key를 통해 암호화된 메시지를 복호화 할 수 있다.
Private Key와 Public Key를 통해 다른 컴퓨터와 통신을 하기 위해서는 먼저 Public Key를 통신하고자하는 컴퓨터에 복사하여 저장한다. 그리고 요청을 보내는 클라이언트 사이드 컴퓨터에서 접속 요청을 할 때 응답을 하는 서버 사이드 컴퓨터에 복사되어 저장된 Public Key와 클라이언트 사이드에 해당 Public Key와 쌍을 이루는 Private Key와 비교를 하여 서로 한 쌍의 Key인지 아닌지를 검사를 진행 한다.
이렇게 서로 관계를 맺고 있는 Key라는 것이 증명이 되면 두 컴퓨터 사이에 암호화된 채널이 형성이 되어 Key를 활용해 메시지를 암호화하고 복호화하며 데이터를 주고 받는 원리
주요 기능
SSH의 주요 기능은 다음과 같다.
- 보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공.
- IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공.
- X11 패킷 포워딩 및 일반적인 TCP/IP 패킷 포워딩을 제공.
SSH에 사용되는 암호화 알고리즘은 유럽에서 개발되었기 때문에, 미국의 수출 제한에도 걸리지 않는다.
SSH 클라이언트
리눅스와 Mac과 같은 Unix 계열의 운영체제는 기본적으로 SSH 클라이언트가 설치 되어 있기 때문에 SSH를 이용하기 위해서 특별한 클라이언트가 필요하지 않다. 하지만 SSH 는 윈도우 운영체제에는 SSH 클라이언트가 설치되어 있지 않다. SSH 클라이언트를 설치해야 윈도우에서 Unix 계열의 운영체제를 제어 할 수 있다. 대표적인 SSH 클라이언트는 아래와 같은 것들이 있다.
- PuTTY
- Xshell
SSH 서버
SSH는 Unix 계열의 운영체제를 원격에서 제어하기 위한 방법이다. 그렇기 때문에 원격지에 있는 윈도우 운영체제를 SSH로 제어 하는 것은 일반적이지 않다. 윈도우에는 클라이언트 운영체제로 사용할 수 있을 뿐이다. 유닉스 계열의 운영체제에서는 OpenSSH가 가장 많이 사용된다. OpenSSH는 SSH 클라이언트와 서버를 포함한다. Mac은 SSH 클라이언트와 서버가 이미 설치 되어 있기 때문에 SSH를 이용하기 위해서 특별한 조치는 필요하지 않다.
'네트워크' 카테고리의 다른 글
대칭키(비공개키), 비대칭키(공개키) 방식 (1) | 2021.11.15 |
---|---|
centos 브릿지 설정 (0) | 2021.11.10 |
Proxy, VPN 이란? (차이점) (0) | 2021.11.04 |