SSH란? – 원격 서버 접속을 안전하게 하는 방법

1. 서버실에 직접 가지 않아도 되는 이유

전 세계 어딘가의 데이터센터에 있는 서버를 집에 앉아서 조작할 수 있다는 것은 생각해보면 꽤 신기한 일입니다. 개발자나 서버 관리자들은 커피숍에서, 자택에서, 심지어 해외 출장 중에도 서버에 접속해 작업을 합니다.

이것이 가능한 이유는 SSH 덕분입니다.

2. SSH의 정의와 역사

**SSH(Secure Shell)**는 네트워크를 통해 원격 컴퓨터에 안전하게 접속하고 명령을 실행할 수 있는 프로토콜입니다.

SSH 이전에는 Telnet이 원격 접속의 표준이었습니다. 하지만 Telnet은 모든 데이터가 암호화되지 않은 채로 전송됐습니다. 아이디와 비밀번호를 포함한 모든 통신 내용이 네트워크를 감청하는 제3자에게 그대로 노출될 수 있었습니다.

1995년 핀란드의 개발자 타투 일요넨(Tatu Ylönen)이 보안 문제를 해결하기 위해 SSH를 개발했습니다. 현재는 SSH 2.0 버전이 표준으로 사용됩니다.

비교 항목TelnetSSH
데이터 암호화없음강력한 암호화
기본 포트23번22번
현재 사용 여부거의 사용 안 함서버 접속 표준
보안매우 취약안전

3. SSH는 어떻게 안전한가? – 암호화 원리

SSH는 공개키 암호화 방식을 사용해 통신을 암호화합니다.

쉽게 설명하면, SSH는 자물쇠(공개키)와 열쇠(개인키)를 활용합니다. 공개키는 누구에게나 공개할 수 있는 자물쇠이고, 개인키는 본인만 가지는 열쇠입니다. 공개키로 잠근 데이터는 개인키로만 열 수 있습니다.

서버에 공개키를 등록해두면, 이후 접속 시 클라이언트가 개인키를 가지고 있음을 증명하는 방식으로 인증합니다. 실제 비밀번호가 네트워크를 통해 오가지 않아 매우 안전합니다.

4. SSH 접속에 필요한 정보

SSH로 서버에 접속하기 위해서는 네 가지 정보가 필요합니다.

서버 주소: IP 주소 또는 도메인. AWS EC2라면 퍼블릭 IP 주소입니다.

포트 번호: 기본값은 22번입니다. 보안 강화를 위해 변경한 경우 해당 번호를 사용합니다.

사용자 이름: 서버에 등록된 계정 이름입니다. Ubuntu 서버는 기본값이 ubuntu, Amazon Linux는 ec2-user입니다.

인증 수단: 비밀번호 또는 SSH 키 파일(.pem, .ppk)입니다.

5. 비밀번호 방식 vs 키 방식 – 무엇이 더 안전한가?

비밀번호 인증 방식은 접속 시 비밀번호를 입력하는 방식입니다. 간편하지만 무차별 대입 공격(Brute Force)에 취약합니다. 자동화된 봇이 수많은 비밀번호 조합을 시도하면 언젠가 뚫릴 수 있습니다.

SSH 키 인증 방식은 개인키 파일을 사용해 인증하는 방식입니다. 수천 자리의 암호화 키를 무차별 대입으로 뚫는 것은 사실상 불가능에 가깝습니다. AWS EC2는 기본적으로 키 인증 방식만 사용합니다.

운영 서버라면 반드시 키 인증 방식을 사용하고 비밀번호 인증은 비활성화하는 것이 권장됩니다.

6. 운영체제별 SSH 접속 방법

Windows (터미널 / PowerShell)

기본 접속 형태입니다. 터미널을 열고 아래 형태로 입력합니다.

ssh 사용자명@서버IP주소

AWS 키 파일을 사용하는 경우 아래처럼 키 파일 경로를 지정합니다.

ssh -i 키파일경로.pem 사용자명@서버IP주소

Mac / Linux (터미널)

Mac과 Linux는 SSH가 기본 내장되어 있어 터미널에서 동일한 방식으로 접속합니다. 키 파일 사용 시 권한 오류가 발생하면 아래 명령으로 파일 권한을 수정합니다.

chmod 400 키파일.pem

PuTTY (Windows 그래픽 방식)

명령어 방식이 불편한 분들은 PuTTY를 사용할 수 있습니다. Host Name에 서버 IP, Port에 22를 입력하고 SSH를 선택한 뒤 Open을 클릭하면 됩니다.

7. SSH 접속 후 알아두면 좋은 것들

SSH로 서버에 접속하면 텍스트만 있는 터미널 화면이 나타납니다.

현재 접속된 서버의 이름과 사용자 이름이 프롬프트에 표시됩니다. 예를 들어 ubuntu@myserver:~$ 형태로 나타납니다.

화면이 낯설더라도 당황하지 않아도 됩니다. 이전에 배운 리눅스 기본 명령어 몇 가지만 알면 충분히 작업이 가능합니다. 접속을 종료하고 싶으면 exit을 입력하면 됩니다.

SSH 세션은 인터넷 연결이 끊기거나 일정 시간 동안 아무 작업을 하지 않으면 자동으로 종료됩니다.

8. 정리 및 다음 단계

오늘 배운 핵심을 정리합니다.

  • SSH는 원격 서버에 안전하게 접속하기 위한 암호화 프로토콜입니다.
  • Telnet과 달리 모든 통신 내용이 암호화되어 안전합니다.
  • 접속에는 서버 주소, 포트(기본 22번), 사용자명, 인증 수단이 필요합니다.
  • 비밀번호 방식보다 키 인증 방식이 훨씬 안전합니다.
  • Windows, Mac, Linux 모두 터미널에서 동일한 명령어로 접속합니다.

다음 글에서는 새로 받은 서버를 처음 세팅할 때 반드시 해야 할 기본 설정들을 알아보겠습니다.

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.