SSH (Secure Shell) 기초
SSH (시큐어 셸)는 네트워크 상의 다른 컴퓨터에 로그인하거나 명령을 실행하고 파일을 복사할 수 있게 해주는 보안 프로토콜입니다.
과거에 사용하던 Telnet은 데이터를 있는 그대로(평문) 전송하여 해킹 위험이 컸지만, SSH는 모든 데이터를 암호화하여 전송하기 때문에 매우 안전합니다.
1. SSH의 핵심: 암호화와 키(Key)
SSH는 강력한 보안을 위해 공개키(Public Key)와 개인키(Private Key)라는 한 쌍의 키를 사용합니다.
① 키 쌍(Key Pair)의 원리 (자물쇠와 열쇠)
- 공개키 (Public Key): 자물쇠와 같습니다. 서버(접속할 컴퓨터)에 미리 설치해 둡니다. 누구나 볼 수 있어도 상관없습니다.
- 개인키 (Private Key): 열쇠와 같습니다. 사용자(내 컴퓨터)가 안전하게 보관해야 합니다. 절대 남에게 주어서는 안 됩니다.
② 접속 과정
- 사용자가 서버에 접속을 요청합니다.
- 서버는 "이 자물쇠(공개키)를 열 수 있는지 증명해봐"라며 암호화된 문제를 냅니다.
- 사용자는 자신이 가진 개인키로 그 문제를 풀어 서버에 제출합니다.
- 문제가 풀리면 서버는 사용자를 신뢰하고 접속을 허용합니다.
[Image of SSH Key Pair Authentication Diagram showing Public Key on Server and Private Key on Client]
2. Telnet vs. SSH 비교
| 특징 | Telnet | SSH |
|---|---|---|
| 데이터 전송 | 평문 (Cleartext) | 암호화 (Encrypted) |
| 보안성 | 낮음 (패킷을 가로채면 비밀번호가 보임) | 높음 (패킷을 가로채도 내용을 알 수 없음) |
| 포트 번호 | 23 | 22 |
| 주요 용도 | 과거의 유물 (거의 사용 안 함) | 서버 관리, 원격 제어, 파일 전송 (SFTP) |
3. SSH의 주요 기능
- 원격 제어 (Remote Shell): 멀리 떨어진 서버의 터미널(검은 화면)을 내 컴퓨터처럼 조작할 수 있습니다.
- 보안 파일 전송 (SFTP): FTP의 보안 버전으로, 파일을 안전하게 업로드/다운로드합니다.
- 터널링 (Tunneling): SSH 연결을 통해 다른 프로토콜의 데이터를 안전하게 감싸서 전송할 수 있습니다.