[IT 정보] 패스워드 없는 안전한 접속: Linux 서버 SSH Key 인증 설정 및 보안 강화법

1. 서론: 일반 비밀번호 접속이 가진 치명적인 보안 취약점

리눅스 클라우드 서버를 개설한 후 외부에서 접속할 때 가장 흔하게 사용하는 방식은 ‘아이디’와 ‘비밀번호’를 입력하는 것입니다. 하지만 이 방식은 해커들이 가장 좋아하는 사냥감입니다. 해커들은 24시간 내내 자동화된 봇프로그램을 돌려 수만 개의 비밀번호 조합을 무차별적으로 대입하는 ‘브루트 포스(Brute Force)’ 공격을 가하기 때문입니다. 비밀번호가 조금만 허술해도 서버 전체의 제어권을 통째로 빼앗길 수 있습니다. 이를 원천 차단하고 비밀번호를 아예 입력하지 않고도 철통 보안을 유지하며 서버에 접속할 수 있게 해주는 기술이 바로 SSH Key 인증 메커니즘입니다.

2. SSH Key 인증의 작동 원리: 공개키와 비밀키의 조합

SSH Key 인증은 수학적인 암호화 알고리즘을 기반으로 작동하며, 한 쌍으로 이루어진 두 개의 키를 사용합니다. 바로 누구나 볼 수 있는 공개키(Public Key)와 나만 안전하게 보관해야 하는 비밀키(Private Key)입니다.

원리는 간단합니다. 자물쇠에 해당하는 공개키는 접속하고자 하는 리눅스 서버 내부에 미리 등록해 둡니다. 그리고 열쇠에 해당하는 비밀키는 내 개인 컴퓨터나 스마트폰에 고이 저장해 둡니다. 외부에서 접속 요청이 들어오면 서버는 자물쇠와 열쇠가 수학적으로 일치하는지 검증합니다. 비밀키는 지구상에 단 하나만 존재하며 복제가 불가능하기 때문에, 일반적인 패스워드 유출로 인한 해킹 위험을 완벽하게 예방할 수 있습니다.

3. 3분 만에 끝내는 SSH Key 생성 및 서버 등록 과정

윈도우의 파워셀이나 맥(Mac)의 터미널을 열고 명령어 몇 줄만 입력하면 나만의 키 쌍을 생성할 수 있습니다.

1) 키 쌍 생성하기: 내 컴퓨터 터미널에 ssh-keygen -t rsa -b 4096 명령어를 입력합니다. 엔터를 몇 번 치면 사용자 홈 디렉토리의 .ssh 폴더 내부에 비밀키(id_rsa)와 공개키(id_rsa.pub)가 자동으로 만들어집니다.

2) 서버에 공개키 등록하기: 생성된 공개키의 텍스트 내용을 복사하여, 접속할 서버의 ~/.ssh/authorized_keys 파일 맨 아래 줄에 붙여넣고 저장합니다. 이제부터는 터미널에서 비밀번호를 치지 않아도 내 컴퓨터에서 서버로 자동 원격 접속이 이루어집니다.

4. 보안의 완성: 패스워드 접속 거부 및 기본 포트 변경

Key 등록을 마쳤다면, 해커들이 패스워드 대입 공격을 아예 시도조차 못 하도록 서버 환경 설정 파일(/etc/ssh/sshd_config)을 수정하여 최종 방어선을 구축해야 합니다.

PasswordAuthentication no: 이 항목을 찾아 no로 변경합니다. 이제 서버는 키 파일이 없는 사용자의 모든 비밀번호 접속 시도를 문전박대하여 차단합니다.

Port 22 -> 2222: 기본 SSH 포트인 22번을 임의의 다른 숫자(예: 2222 등)로 바꾸어 주면, 전 세계 악성 봇들이 22번 포트만 노리고 들어오는 자동화 공격의 99%를 허무하게 만들 수 있어 서버 보안성이 극대화됩니다.

5. 결론: 철저한 보안 인프라 위에서 피어나는 디지털 자산

SSH Key 인증 설정과 패스워드 접속 차단은 서버를 운영하는 관리자라면 타협할 수 없는 필수적인 보안 기본기입니다. 문단속이 허술한 집에는 도둑이 들기 마련이듯, 인프라 단에서의 방어선이 무너지면 그동안 정성 들여 키워온 워드프레스 블로그의 가치도 한순간에 물거품이 될 수 있습니다. 오늘 공유해 드린 가이드라인을 토대로 철저하게 암호화된 접속 환경을 구축하시고, 해킹 위협 걱정 없이 안전하고 영속적인 수익형 블로그 자산을 키워나가시길 바랍니다. 다음 편에서는 리눅스 서버의 대역폭과 트래픽 부하를 줄여주는 Gzip 압축 전송 최적화 세팅법을 다루겠습니다.

Leave a Comment