리눅스를 활용하는 가장 중요한 방법 중 하나가 바로 SSH입니다. 이 원격 접속 명령줄 도구를 사용하면 소프트웨어 설치부터 리눅스를 웹 서버로 구성하는 것까지 거의 모든 작업을 수행할 수 있습니다. SSH는 시간을 절약하고 생산성을 높여주며, 리눅스 배포판의 잠재력을 최대한 끌어낼 수 있게 도와줍니다.
하지만 클라이언트와 서버 양쪽에서 SSH는 어떻게 설정할까요? 이 글에서는 양쪽 끝에 SSH 소프트웨어를 설치하고 구성하는 방법과, 원격으로 리눅스 컴퓨터를 제어하는 방법까지 자세히 알아봅니다.
SSH란 무엇인가?
SSH는 Secure Shell(보안 셸)의 약자로, 다른 기기에서 리눅스 컴퓨터나 서버를 원격으로 제어할 수 있게 해주는 프로토콜입니다. 로컬 네트워크와 인터넷 모두에서 작동하기 때문에 집에 있는 리눅스 미디어 서버를 관리하거나, 다른 대륙에 있는 리눅스 웹 서버를 운영하는 데에도 활용할 수 있습니다.
SSH는 원격 컴퓨터의 데스크톱 환경에는 접근할 수 없지만, 터미널을 사용할 수 있게 해줍니다. 원격 컴퓨터에 연결되면 마치 그 컴퓨터가 바로 앞에 있는 것처럼 사용할 수 있습니다. 단, 루트(root) 권한이 있는지 미리 확인하세요.
참고로 리눅스에는 SSH 외에도 다양한 원격 접속 솔루션이 있습니다. 예를 들어 우분투 사용자라면 VNC 호환 원격 데스크톱 도구인 Remmina를 사용할 수 있습니다.
SSH를 사용하려면 먼저 원격 컴퓨터(서버)에 SSH가 설정되어 있어야 하고, 로컬 기기(클라이언트)에는 SSH 앱이 설치되어 있어야 합니다.
클라이언트 측 설치
클라이언트에 SSH를 설치하고 설정하는 것은 매우 간단합니다. 경우에 따라서는 별도의 소프트웨어조차 필요하지 않습니다.
- 리눅스: 대부분의 배포판은 터미널에 SSH 클라이언트가 내장되어 있습니다.
- macOS: 맥 컴퓨터 역시 터미널에 SSH가 사전 설치되어 있습니다.
- 윈도우: PowerShell 명령줄 도구를 사용하거나 PuTTY를 설치해야 합니다.
모바일 기기에서도 SSH 접속이 가능합니다.
- iPhone / iPad: iTerminal($4.99)을 사용해 보세요.
- Android: 무료 앱인 JuiceSSH를 추천합니다.
리눅스 시스템에 SSH가 설치되어 있지 않다면, 패키지를 업데이트한 후 설치 명령을 실행하세요.
sudo apt update && sudo apt upgrade
sudo apt install openssh-client
윈도우에서 SSH를 사용하다가 리눅스 데스크톱으로 넘어왔다면, 마우스로 조작하기 편리한 PuTTY가 그리울 수 있습니다. 다행히 리눅스 데스크톱에도 설치할 수 있습니다.
sudo apt install putty
SSH 클라이언트 소프트웨어가 설치되면 원격 컴퓨터나 서버로의 연결을 설정할 준비가 된 것입니다.
데스크톱이든 모바일이든 모든 클라이언트의 공통 원칙은 간단합니다. IP 주소 또는 호스트 이름과 적절한 로그인 정보만 있으면 됩니다. 앱의 화면 구성은 조금씩 다르고 포트 번호를 직접 입력해야 할 수도 있지만, SSH 클라이언트들은 대체로 비슷하게 작동합니다.
서버 측 설치 및 구성
연결을 설정하기 전에 SSH 연결을 호스팅할 서버 측 소프트웨어를 설치해야 합니다. 이 과정에서는 누군가 현장에서 SSH를 설치하거나 활성화해야 합니다. 직접 진행할 수도 있고, 그렇지 않다면 서버 쪽의 동료나 지원 엔지니어가 SSH를 설정해 줄 것입니다.
웹 호스팅 패키지를 사용 중이라면 SSH가 기본적으로 활성화되어 있는 경우가 많습니다. 만약 그렇지 않다면 웹 호스팅 업체에 문의하여 SSH를 설정하세요.
원격 컴퓨터나 서버에 SSH가 활성화되어 있지 않다면 다음 명령으로 설치합니다.
sudo apt install openssh-server
설치가 제대로 되었는지 확인하려면 아래 명령을 실행하세요.
sudo systemctl status ssh
이 명령은 "active(활성)" 상태를 응답해야 합니다.
경우에 따라 우분투 방화벽인 ufw가 SSH를 차단할 수 있습니다. 이런 일을 방지하려면 다음 명령을 사용하세요.
sudo ufw allow ssh
또한 일부 환경에서는 원격 장치에서 SSH를 활성화해야 할 수도 있습니다. 보안상의 예방 조치 차원에서 다음 명령으로 설정할 수 있습니다.
sudo systemctl enable ssh
이 외에도 SSH 서비스를 구성하는 다양한 옵션(stop, start, disable)을 활용할 수 있습니다.
IP 주소 확인하기
SSH로 원격 장치에 연결하려면 해당 컴퓨터의 IP 주소를 알아야 합니다. 두 가지 쉬운 방법이 있습니다.
- 터미널 명령 실행
- 라우터에서 연결된 장치 확인
원격 시스템의 IP 주소를 표시하려면 로그인한 후 다음 명령을 실행합니다.
ip address
장치의 IP 주소가 반환되니 이를 메모해 두세요. 구버전 리눅스에서는 ifconfig 명령이 더 나은 결과를 제공할 수 있습니다.
라우터 관리 페이지에서 연결된 장치 목록을 확인할 수도 있습니다. 리눅스 PC나 서버가 운영체제 또는 장치 이름으로 표시되므로 쉽게 식별할 수 있습니다.
공인(public) IP 주소를 확인하려면 서버에 로그인한 후 whatsmyip.org에 접속하세요.
사용할 IP 주소는 연결 상황에 맞는 것이어야 합니다. 장치가 클라이언트와 같은 네트워크에 있다면 로컬 IP 주소를, 인터넷을 통한 연결이라면 공인 IP 주소를 사용하세요. 컴퓨터가 다른 네트워크에 위치해 있다면 22번 포트가 해당 컴퓨터로 포워딩되어 있는지 반드시 확인해야 합니다.
SSH로 리눅스에 연결하기
올바른 IP 주소 외에도 원격 컴퓨터에 접근하려면 사용자 이름과 비밀번호가 필요합니다.
명령줄 SSH 도구를 사용한다면 다음 형식으로 입력합니다.
ssh username@REMOTE.IP.ADDRESS.HERE
username을 실제 사용자 이름으로, REMOTE.IP.ADDRESS.HERE를 원격 장치의 IP 주소로 바꿔 입력하세요. Enter 키를 누르면 비밀번호를 묻는 프롬프트가 나타납니다.
올바른 비밀번호를 입력하면 정상 작동하는 터미널 프롬프트가 표시됩니다. 이제 원격 컴퓨터에 성공적으로 로그인된 상태입니다.
PuTTY 같은 데스크톱 SSH 클라이언트를 사용하시나요?
Host Name 또는 IP address를 입력하고, 연결 유형에서 SSH를 선택한 후 Open을 클릭하세요. 사용자 이름과 비밀번호를 요청받으면 명령줄 창에 입력하여 연결을 완료하고 원격 접속 권한을 얻습니다.
연결이 안 되나요? SSH 설정 문제 해결
SSH 연결에 문제가 있다면 다음과 같은 원인을 의심해 볼 수 있습니다.
- 두 컴퓨터 중 하나에 SSH 소프트웨어가 설치되어 있지 않음
- 사용자 이름 또는 비밀번호가 잘못됨
- IP 주소가 틀림
- 방화벽이 연결을 차단하거나 22번 포트가 포워딩되지 않음
각 항목을 차례대로 다시 확인하면 대부분 연결할 수 있을 것입니다. 그래도 해결되지 않는다면 문제가 더 복잡한 원인에 있을 수 있습니다.
SSH로 리눅스 원격 관리하기
SSH는 하나 이상의 리눅스 컴퓨터를 관리하는 데 매우 유용한 도구입니다.
단 하나의 시스템에서 어떤 머신이든 작업할 수 있으며, SSH를 통해 거의 모든 리눅스 터미널 명령을 입력할 수 있습니다.
대표적인 활용 예는 다음과 같습니다.
- 업데이트: sudo apt update && sudo apt upgrade
- 상태 확인: uptime
- 실행 중인 프로세스 확인: ps
- CPU 사용량 기준 프로세스 확인: top
더 많은 내용이 궁금하다면 리눅스 서버 관리용 SSH 명령어 목록을 참고해 보세요.
SSH를 설정하고 리눅스를 더 강력하게
SSH를 활용하면 리눅스는 훨씬 더 유연하고 강력해집니다. 덕분에 스마트폰만으로도 컴퓨터에 원격 접속할 수 있습니다.
클라이언트와 서버 측 소프트웨어가 올바르게 설치되고 구성되었다면, 어디서든 원격 명령줄 접속이 가능합니다. 더 많은 기능이 필요하신가요? 윈도우에서 리눅스 데스크톱을 원격으로 제어하는 방법도 함께 확인해 보세요.