SSH란 무엇인가?
SSH(Secure Shell)는
원격 서버에 안전하게 접속하기 위한 표준 프로토콜입니다.
리눅스 서버, 클라우드 인스턴스, NAS, 네트워크 장비까지
운영자가 직접 로그인해야 하는 거의 모든 시스템은 SSH를 사용합니다.
실무에서는 다음과 같은 상황에서 SSH를 사용합니다.
- 서버 최초 접속
- 서비스 장애 조치
- 로그 확인
- 설정 파일 수정
- 배포 및 자동화 작업
즉, SSH는 서버 운영의 시작점입니다.
SSH를 이해하지 못하면 생기는 실무 문제
현장에서 자주 보이는 상황은 다음과 같습니다.
- “접속은 되는데 왜 보안 경고가 뜨지?”
- “22번 포트 그냥 써도 되는 거 아닌가요?”
- “키 파일 잃어버리면 서버 못 들어가나요?”
- “이 계정 누가 쓰는지 모르겠어요”
- “권한이 없다고 나와요”
이런 문제의 대부분은
SSH의 구조와 동작 원리를 모르기 때문에 발생합니다.
SSH의 기본 구조 이해하기
SSH는 단순한 “접속 도구”가 아닙니다.
다음 요소들이 함께 작동합니다.
클라이언트(Client)
- 접속하는 측에서 작동합니다.
- 예를 들자면 Mac 터미널 (iTerm을 많이 쓰죠), Windows PowerShell (윈도우 기본 기능), SecureCRT (관리가 편합니다), MobaXterm (저는 이게 너무 편하더라구요.)
서버(Server)
- 접속 대상할 곳에 서비스가 실행되어 있어야 접속이 가능
- 리눅스 서버에서
sshd데몬이 실행 중이어야 함
인증(Authentication)
- “누구냐”를 증명
- 비밀번호 또는 키 기반 인증
암호화(Encryption)
- 통신 내용을 암호화
- 중간에서 패킷을 가로채도 해독 불가
SSH는 이 네 가지가 동시에 작동합니다.
SSH는 왜 Telnet을 대체했을까?
과거에는 Telnet을 사용해 서버에 접속했습니다.
하지만 Telnet에는 치명적인 문제가 있었습니다.
- 모든 통신이 평문
- 아이디/비밀번호 그대로 노출
- 네트워크 스니핑에 취약
SSH는 이 문제를 해결하기 위해 등장했습니다.
| 구분 | Telnet | SSH |
|---|---|---|
| 암호화 | ❌ 없음 | ✅ 있음 |
| 보안성 | 매우 낮음 | 매우 높음 |
| 실무 사용 | 일부 테스트용 사용 | 표준 |
그래서 현재 Telnet은 보안 상 운영 서버에서 사용 금지 수준입니다.
SSH 인증 방식 개요 (요약)
SSH 인증 방식은 크게 두 가지입니다.
비밀번호 인증
- 서버 계정 + 비밀번호
- 설정은 쉽지만 공격에 취약
키 기반 인증
- 공개키 + 개인키
- 자동화·보안에 최적
- 실무 서버 표준
실무에서는 반드시 키 기반 인증을 사용해야 합니다.
다음 편에서 실제 설정을 다룹니다.
SSH는 “열어두는 순간” 공격 대상이 된다
중요한 사실 하나.
SSH 포트를 여는 순간
전 세계 봇의 공격 대상이 됩니다.
실제 운영 서버 로그를 보면:
- 하루 수천 ~ 수만 건 로그인 시도
- 존재하지 않는 계정 접속 시도
- 중국, 러시아, 해외 IP 반복 접근
그래서 SSH는
‘기본 설정 그대로 쓰면 안 되는 서비스’의 대표 사례입니다.
실무 기준에서 SSH를 다루는 방식
실무에서는 SSH를 이렇게 봅니다.
- 단순 접속 수단 ❌
- 보안 서비스 + 운영 서비스 ⭕
그래서 다음이 필수가 됩니다.
- 포트 변경
- 비밀번호 인증 차단
- 키 관리
- IP 제한
- 로그 모니터링
이 모든 내용을
이 시리즈에서 순서대로 다룹니다.
SSH 전체 구조와 보안·운영 전략을 한 번에 보려면
[SSH 실무 완전정복] 접속부터 보안·운영 한방 정리 가이드
다음 편에서는
**“이론 말고 실제로 어떻게 접속하는지”**를 다룹니다.
[SSH 실무 완전정복] 2편 – 리눅스 SSH 접속 방법 총정리
- Mac / Windows 접속
- 기본 명령어
- 접속 시 자주 발생하는 오류




