SSH (Secure Shell)

J·2022년 8월 20일

SSH란?
SSH (Secure Shell 또는 Secure Socket Shell)은 시스템 관리자가 다른 컴퓨터에 안전하게 접근할 수 있는 방법이다. 기존 원격 접속은 telnet이라는 방식을 사용했는데, 암호화를 제공하지 않기 때문에 보안상 취약하다는 단점이 있다. 이 때문에 이를 암호화하는 SSH기술이 등장했고, 현재 원격 접속 보안을 위한 필수적인 요소로 자리잡고 있다.

SSH 작동원리
SSH를 구성하는 가장 핵심적인 키워드는 ‘KEY(키, 열쇠)’ 이다. 사용자(클라이언트)와 서버(호스트)는 각각의 키를 보유하고 있으며, 이 키를 이용해 연결 상대를 인증하고 안전하게 데이터를 주고 받게 된다. 대칭키와 비대칭키 방식 두가지의 키 생성 방식을 가지고 있다. 키 페어는 공개 키와 개인 키의 두가지로 이루어진 한 쌍을 뜻하며, 보통 공개 키의 경우 .pub, 개인 키의 경우 .pem의 파일 형식을 띄고 있다.

  • 비대칭키 방식
    서버와 사용자가 서로의 정체를 증명하기 위해 비대칭키 방식에서는 서버 또는 사용자가 Key Pair를 생성합니다. 키 페어는 공개키(.pub)와 개인 키(.pem)의 파일 형식을 띄고 있습니다. 예를 들어 사용자가 키 페어를 생성했을 때 공개 키를 서버에 전송합니다. 서버는 공개 키를 받아서, 이 공개 키로 만들어진 랜덤한 값을 생성합니다. 이 값은 사용자가 올바른 키 페어를 가지고 있는지 시험하는 일종의 시험지와 같습니다. 시험지를 받은 사용자는 가지고 있는 개인 키를 이용해 이 시험지를 풉니다. 그리고 푼 값을 사용자는 다시 서버에 전송합니다. 서버는 사용자로부터 전송받은 값을 확인하여 올바른 개인 키를 보유하고 있는 것을 확인하고 접속을 허용해줍니다. 이 경우 오직 키 페어 생성 시 함께 생성된 개인 키와 공개키만 서로 해석이 가능합니다.

  • 대칭 키 방식
    주고받는 과정에서 정보가 새어나가지 않기 위해 정보를 암호화해서 주고받는데, 여기서 사용되는 과정이 대칭키 방식이다. 대칭키 방식에서는 비대칭키 방식과 달리 한개의 키만이 사용되는데 이 키를 대칭 키라고 한다. 접속할 때마다 새로운 대칭키를 생성 및 공유하여 암호화를 하고, 푸는 과정에 사용합니다.

"""
ssh user_name@xxx.xxx.xxx.xxx 과 같이 사용
"""
Reference
1. 만화로 배우는 리눅스 시스템 관리, Piro, 길벗
2. 2016gabia 라이브러리, https://library.gabia.com/contents/infrahosting/9002/

profile
I'm interested in processing video&images with deeplearning and solving problem in our lives.

0개의 댓글