OWL Magzine Korea

SSH란 무엇인가 — 서버를 “직접 다룬다”는 것이 어떤 의미인지 이해하기

SSH는 Secure Shell의 약자다. 이름은 어렵지만 역할은 단순하다. 내가 앉아 있는 자리에서, 멀리 있는 컴퓨터에 글자를 입력할 수 있게 해주는 통신 방식이다.

워드프레스나 클라우드 서버를 처음 사용하면 반드시 마주치는 용어가 있다.

“SSH로 접속하세요.”

처음에는 대부분 이 말을 이렇게 받아들인다.

관리자 페이지 말고 또 다른 로그인 화면이 있다는 뜻일까, 혹은 개발자만 쓰는 특수 기능일까 하는 식이다. 실제로 브라우저에서 사이트가 정상적으로 열리고 관리자 화면도 존재하는데, 왜 굳이 또 다른 접속 방법이 필요한지 이해되지 않는 경우가 많다.

하지만 SSH는 워드프레스 기능도 아니고 특정 프로그램의 이름도 아니다. 더 정확히 말하면 컴퓨터를 사용하는 방식 자체에 관한 개념이다. 서버 운영을 이해하려면 이 부분을 먼저 정리할 필요가 있다.


웹사이트는 프로그램이 아니라 “컴퓨터 위에서 실행되는 것”

우리가 인터넷에서 보는 웹사이트는 화면으로만 접하게 되기 때문에 하나의 서비스처럼 느껴진다. 그러나 실제 구조는 훨씬 단순하다. 웹사이트는 인터넷 어딘가에 있는 한 대의 컴퓨터에서 실행되는 프로그램이다. 그 컴퓨터를 서버라고 부른다.

이 서버는 특별한 장비라기보다 일반 PC와 거의 동일하다.

차이점은 세 가지 정도뿐이다.

  1. 항상 켜져 있다
  2. 인터넷에 계속 연결되어 있다
  3. 웹페이지를 보여주는 프로그램(웹서버)이 실행되고 있다

즉 우리가 집에서 사용하는 컴퓨터를 다른 장소에 두고, 항상 켜 두고, 누구나 접속할 수 있도록 만든 것이 서버라고 이해하면 가장 정확하다.

문제는 위치다. 서버는 집에 있는 것이 아니라 데이터센터라는 곳에 설치되어 있다. 수백, 수천 대의 컴퓨터가 동시에 돌아가는 장소이며, 일반 사용자가 직접 가서 모니터와 키보드를 연결할 수 없다. 그렇다면 이 컴퓨터를 어떻게 조작해야 할까.

바로 여기서 SSH가 등장한다.


SSH는 “멀리 있는 컴퓨터에 키보드를 연결하는 기술”

SSH는 Secure Shell의 약자다. 이름은 어렵지만 역할은 단순하다.

내가 앉아 있는 자리에서, 멀리 있는 컴퓨터에 글자를 입력할 수 있게 해주는 통신 방식이다.

쉽게 말해 이런 상황이다.

  • 집 컴퓨터 → 눈앞에 있으니 바로 키보드 사용 가능
  • 서버 컴퓨터 → 멀리 있으니 직접 조작 불가능

SSH는 이 거리 문제를 해결한다.

인터넷을 통해 서버와 연결하고, 내가 입력하는 글자를 서버에 전달한다. 서버는 그 글자를 명령으로 인식하고 바로 실행한다. 그리고 결과를 다시 화면에 보여준다.

그래서 SSH로 접속하면 보통 검은 화면이 열린다. 아이콘도 없고 마우스도 거의 사용하지 않는다. 글자를 입력하면 바로 반응하는 단순한 구조다. 이것이 서버 컴퓨터의 실제 운영 화면, 즉 콘솔이다.


워드프레스 관리자 페이지와 SSH의 차이

많은 사용자가 헷갈리는 부분은 이 지점이다. 이미 /wp-admin이라는 로그인 화면이 존재하는데, 왜 또 다른 접속 방법이 필요할까 하는 의문이다.

두 접속 방식은 대상이 다르다.

  • 워드프레스 관리자 페이지: 웹사이트 프로그램을 관리
  • SSH 접속: 컴퓨터 자체를 관리

워드프레스는 서버 안에 설치된 하나의 프로그램이다.

관리자 페이지에서는 글 작성, 플러그인 설치, 테마 변경처럼 사이트 내부 기능만 다룰 수 있다. 하지만 웹서버, 데이터베이스, 파일 시스템, 메모리 상태 같은 것은 접근할 수 없다.

반면 SSH는 프로그램이 아니라 운영체제 자체에 접속하는 방식이다. 즉 워드프레스가 아니라 워드프레스가 돌아가는 컴퓨터를 직접 조작하게 된다.


왜 서버 운영에서 SSH가 필요한가

사이트가 정상일 때는 관리자 페이지로 대부분의 작업이 가능하다. 실제로 많은 사용자가 서버 접속 없이도 오랫동안 운영을 이어간다. 그러나 문제가 발생하는 순간 상황이 달라진다.

예를 들어 다음과 같은 상황을 생각해 볼 수 있다.

  • 사이트 접속 시 데이터베이스 오류가 발생
  • 관리자 페이지 자체가 열리지 않음
  • 서버 속도가 갑자기 느려짐
  • 디스크 용량 부족으로 이미지 업로드 실패
  • 스팸 댓글이 폭증하여 페이지가 멈춤

이때 공통점이 있다. 웹 브라우저로는 아무것도 할 수 없다는 점이다. 사이트 관리 도구 자체가 작동하지 않기 때문이다. SSH는 바로 이때 사용된다. 웹사이트가 아니라 서버 컴퓨터에 직접 들어가 문제를 해결할 수 있기 때문이다.


SSH로 실제로 하게 되는 작업들

SSH로 접속하면 서버 운영체제의 명령어를 입력하게 된다. 이는 워드프레스 명령이 아니라 컴퓨터 자체를 움직이는 기본 명령이다.

대표적인 작업은 다음과 같다.

  • 서버 메모리 상태 확인
  • 디스크 남은 용량 확인
  • 웹서버 재시작
  • 데이터베이스 정리
  • 대량 파일 삭제
  • 로그 파일 확인

관리자 페이지에서는 보이지 않는 부분을 다룰 수 있기 때문에, 서버 장애 상황에서는 사실상 유일한 해결 방법이 된다.


SSH가 “Secure”인 이유

SSH 앞에 붙는 Secure는 단순한 수식어가 아니다. 서버는 인터넷에 항상 연결되어 있기 때문에 접속 방식이 안전하지 않으면 누구나 접근할 수 있게 된다.

SSH는 접속 과정 전체를 암호화한다. 내가 입력하는 명령과 서버의 응답이 외부에서 읽히지 않도록 보호된다. 그래서 공용 네트워크 환경에서도 비교적 안전하게 서버 관리가 가능하다.

또한 많은 서버에서는 비밀번호 대신 인증 키 파일을 사용한다. 이는 단순 계정 로그인보다 더 높은 수준의 접근 통제 방법이다. 서버에 접속하면 웹사이트뿐 아니라 모든 데이터를 조작할 수 있기 때문에 보안이 매우 중요하다.


운영체제와 SSH의 관계

여기서 또 하나의 개념이 정리된다.

SSH는 운영체제가 아니다. SSH는 “접속 방법”이고, 실제로 접속하게 되는 대상은 서버의 운영체제다. 대부분의 웹서버는 리눅스라는 운영체제를 사용한다. 즉 SSH로 접속하면 리눅스 컴퓨터를 원격으로 조작하는 상태가 된다.

그래서 free -h, df -h, top 같은 명령어가 등장한다. 이것들은 워드프레스 명령이 아니라 리눅스 운영체제의 기본 명령이다.


정리

웹사이트는 하나의 서비스가 아니라 컴퓨터 위에서 실행되는 프로그램이다. 평소에는 브라우저를 통해 그 프로그램만 사용하지만, 문제가 발생하면 프로그램이 아니라 컴퓨터 자체를 다뤄야 한다. SSH는 바로 그때 사용되는 원격 접속 방식이다.

관리자 페이지가 “사이트 운영 도구”라면, SSH는 “컴퓨터 관리 도구”에 해당한다. 서버 운영이 일정 규모를 넘어가면 결국 웹 인터페이스만으로는 해결할 수 없는 상황을 만나게 되며, 이때 SSH는 선택 기능이 아니라 기본 관리 수단이 된다.

결국 서버 운영에서 SSH를 이해한다는 것은 새로운 기술을 배우는 것이 아니라, 웹사이트가 실제로는 하나의 컴퓨터 위에서 돌아가고 있다는 사실을 이해하는 과정이라고 볼 수 있다.