SSH (Secure Shell)는 네트워크를 통해 다른 컴퓨터에 안전하게 로그인하고, 원격 시스템에서 명령을 실행하며, 파일을 복사할 수 있게 해주는 프로토콜입니다. 기존의 rsh, rlogin, telnet 등을 대체하기 위해 설계되었으며, 통신 중인 데이터를 암호화하여 보안을 강화했습니다.
여기 rsh, rlogin, telnet, 그리고 ssh의 각각에 대한 간단한 설명과 장단점을 정리해드리겠습니다.
rsh (Remote Shell):
rlogin (Remote Login):
telnet:
ssh (Secure Shell):
SSH는 rsh, rlogin, telnet에 비해 데이터를 암호화하여 안전한 원격 작업 환경을 제공한다는 큰 장점이 있습니다. 이러한 이유로 현재 대부분의 원격 접속과 파일 전송에는 SSH가 사용됩니다.
Telnet과 달리 SSH는 암호화 기능을 통해 데이터를 안전하게 보호합니다. 사용자 인증을 위한 공개 키 인증 방식을 지원하며, 이를 통해 비밀번호 없이도 안전하게 로그인할 수 있는 방법을 제공합니다. 또한, SSH는 포트 포워딩을 통해 로컬 및 원격 포트를 연결하고, 안전하지 않은 트래픽을 암호화된 채널을 통해 전송할 수 있는 기능을 제공하여, 더욱 강력한 네트워크 보안 환경을 구축할 수 있습니다.
SSH의 이러한 보안 기능 때문에, 많은 조직과 시스템 관리자들은 민감한 데이터를 처리하거나 중요한 시스템을 관리할 때 SSH를 선호합니다. 이는 네트워크를 통한 관리 작업의 안전성을 크게 향상시키며, 원격 시스템에 대한 신뢰성 있는 접근을 가능하게 합니다.
Telnet과 같은 이전 프로토콜들은 여전히 일부 구식 시스템이나 특정 환경에서 사용되기는 하지만, 보안이 중요한 대부분의 현대적인 환경에서는 SSH가 그 자리를 대체하고 있습니다. Telnet은 간단한 테스트나, 보안이 크게 중요하지 않은 내부 네트워크에서의 사용에 한정되어 사용됩니다.
SSH는 어떻게 작동되는가??
SSH (Secure Shell)는 클라이언트-서버 모델을 기반으로 작동합니다. 여기에는 클라이언트(SSH 클라이언트 프로그램을 실행하는 사용자의 컴퓨터)와 서버(SSH 서버 프로그램을 실행하는 원격 컴퓨터)가 포함됩니다.
작동 과정을 단계별로 설명하면 다음과 같습니다:
이러한 과정은 사용자와 서버 간의 모든 데이터가 노출 없이 안전하게 전송될 수 있도록 보장합니다.
예를들어 코딩으로 예시를 든다면 다음과 같다
---------------------------------------------------------------------------
클라이언트 -> 서버: 연결 요청
서버 -> 클라이언트: 공개 키 전송
if 클라이언트가 서버 키를 신뢰한다면
클라이언트 -> 서버: 인증 정보 전송(비밀번호 또는 개인 키 서명)
if 서버가 인증을 승인한다면
양쪽은 대칭 키를 생성하여 세션 암호화
클라이언트와 서버 간에 암호화된 데이터 통신이 시작됨
else
연결 실패
else
연결 실패
---------------------------------------------------------------------------
| Mount 네임스페이스 (0) | 2024.03.11 |
|---|---|
| 컨테이너를 구성하는 3가지 리눅스 기술 (0) | 2024.03.07 |
| VirtualBox으로 리눅스 네트워크 구성 (0) | 2024.02.29 |
| OCI와CRI의 개념 그리고 차이 (4) | 2024.02.27 |
| CNCF(Cloud Native Computing Foundation)란? (0) | 2024.02.27 |