콘텐츠로 이동

서버 접속

Linux에는 업계에서 널리 쓰이는 도구가 하나 있는데, 바로 SSH다. 원격 데스크톱처럼 화면을 조작할 수는 없지만, 서버의 명령줄에 원격으로 로그인해 명령을 실행할 수 있다. ssh 명령은 워낙 자주 쓰여서 대부분의 Linux 배포판에 기본으로 들어 있다. 현재 ssh 명령을 제공하는 소프트웨어 중 가장 널리 쓰이는 것은 OpenSSH다.

클라우드 서버는 고객이 바로 접속할 수 있도록 보통 sshd 서비스가 기본으로 켜져 있다. 집에 둔 서버를 쓰거나, 클라우드 서버인데 sshd가 정말 꺼져 있다면(예: 업체가 제공하는 VNC나 서드파티 원격 제어 프로그램으로만 접속할 수 있고 SSH는 안 되는 경우) 먼저 sshd를 켜야 접속할 수 있다. systemd를 쓰는 주요 Linux 배포판에서는 systemctl enable --now sshd를 실행하면 sshd가 켜진다. 이 명령이 오류를 낸다면 sshd 자체에 문제가 있는 것이니, 오류 메시지를 검색 엔진에 붙여 넣어 해결 방법을 찾아보자. sshd를 켜고 나면 이 서버에 접속할 수 있다.

SSH 서비스를 켠 뒤 외부 인터넷에서 접속하려면 SSH 서비스의 포트 22도 외부에 열어야 한다. 여는 방법은 Windows 원격 데스크톱 포트를 여는 방법과 똑같고, 프로토콜은 TCP만 열면 된다.

Windows에 아무것도 설치하지 않아도 Windows 원격 데스크톱에 접속할 수 있듯이, Linux에도 SSH 접속 수단이 내장되어 있다. ssh 명령을 실행하기만 하면 된다. 문법은 다음과 같다.

Terminal window
ssh <username>@<address> [-p port]

포트를 지정하려면 포트 인자를 줘야 한다. 일부 운영체제에서는 이 인자가 -p이며, 예를 들면 ssh root@8aka.org -p 48291이다. 어떤 도구는 포트를 그냥 뒤에 붙인다. 예를 들어 Xshell에서는 ssh root@8aka.org 48291이다. 도구마다 ssh 명령 형식이 다르니 쓰는 도구에 맞춰 확인해야 한다. 예를 들어 ssh만 실행하면(ssh --help와 같음) 현재 도구에서 이 명령을 어떻게 쓰는지 알려 준다. 더 자세한 설명이 필요하면 man ssh를 입력하자.

명령을 입력하면 서버가 보통 해당 사용자의 비밀번호를 묻는다.

비밀번호를 매번 입력하기 싫다면 키 로그인을 쓰면 된다. 이 방법이 더 안전하고 보통 뚫기도 더 어렵다. 절차는 다음과 같다.

  1. ssh-keygen 명령으로 SSH 키를 생성한다.

  2. cat .ssh/id_xxxx.pub 같은 명령으로 생성된 SSH 공개 키를 확인한다(xxxx는 보통 키를 만들 때 고른 알고리즘에 따라 달라진다).

  3. 서버에서 접속할 사용자의 홈 디렉터리에 ./ssh/authorized_keys를 만들고, 편집해서 공개 키를 붙여 넣는다. 공개 키 하나당 한 줄이다.

  4. 위의 ssh 명령을 다시 실행하면 비밀번호 없이 바로 셸이 뜬다.

다른 운영체제에서도 도구를 써서 서버에 접속할 수 있다. 몇 가지를 소개한다.

Windows에 기본으로 들어 있는 PowerShell이다.

Win + R을 누르고 powershell을 입력하면 된다(새 버전 PowerShell을 설치했다면 pwsh를 입력한다).

그다음 ssh -p <port> <username>@<hostname>을 입력하면 Linux 서버에 접속된다.

처음 접속하면 서버 키를 저장할지 묻는데, 수락하고 저장하면 다음부터는 묻지 않는다.

SSH 말고도 VNC나 RDP 같은 원격 데스크톱을 쓸 수도 있다. 하지만 서버에는 보통 데스크톱 환경과 원격 데스크톱 환경이 없고, 꼭 필요한 경우가 아니라면 서버에서 원격 데스크톱을 쓰는 것은 권장하지 않는다. 데스크톱 환경과 원격 데스크톱 서버 구축은 이 문서에서 자세히 다루지 않으니, 필요하다면 따로 검색해 보자.