리눅스 서버 접속과 제어방법: 라이트세일, CLI, SSH,SFTP 연결 및 터미널 사용

12

워드프레스 시작하기 연재작 중 하나인 이번 포스트에서는 리눅스 우분투 서버에 접속하는 방법을 알아보겠습니다. 시리즈 연재작의 일환으로 작성되는 글이지만 서버 접속 및 제어에 대한 기본사항이므로 서버관리에있어서는 필수소양입니다.

단순히 워드프레스 블로그를 사용하고자하는 분들은 서버에 직접 접속할일이 별로 없다고 보면 되지만 비트나미 워드프레스의 경우 초기 관리자 비번과 배너제거때문에 한번 쯤은 접속하게 됩니다. 그리고 HTTPS 보안 설정인 SSL 인증서설정을 하려하려고한다면 서버접속과 리눅스 명령어 입력은 필수적입니다.

이 글에서 배울수 있는 서버접속은 아마존 라이트세일에 설치되는 워드프레스 서버뿐만 아니라 일반적으로 모든 리눅스 서버를 사용하는 서버프로그래밍에도 공통된 사항이니 서버운영자, 프로그래머라면 알아둬야합니다.

 

서버접속 방법에 대해 이글에서 언급하고 싶은 종류는 3가지입니다.  서버를 제대로 제어하기위해서는 SSH접속하는 방법을 꼭 익혀둬야합니다.

  1. 아마존 라이트세일 웹페이지에서 SSH 콘솔로 접속
  2. 내컴퓨터 CLI도구를 통한 SSH접속 (저는 Mac 사용자라 Terminal 앱을 사용합니다)
  3. SFTP 클라이언트를 통한 접속 ( Mac에서 Transmit, Forklift같은 FTP 클라아이언트 프로그램을 사용합니다)

첫 번째 방법은 워드프레스 설치하기 글에서 초기 관리자 비밀번호를 알아내는 방법을 배울때 언급했고, 두 번째와 세 번째는 같은 글에서 언급했던 암호 key 파일(.pem)을 필요로 합니다.

1번과 2번은 리눅스 서버를 CLI를 통해 제어하는 방법이므로 접속방법만 다르고 사용방법은 같은데 2번은 1번과 다르게 웹브라우저가 아닌 내 컴퓨터에 존재하는 프로그램을 통해서 명령어를 내린 다는 것입니다.

CLI (커맨드 라인 인터페이스)를 이용한 서버 접속 및 제어

먼저 웹브라우저의 SSH 연결이든, 내컴퓨터에서의 SSH연결이든 클라이언트 컴퓨터에서 CLI 명령어를 쓴다는 개념을 이해할 필요가 있습니다. 리눅스 서버 컴퓨터에 어떤 프로그램을 다운로드받고 설치하려면 내 컴퓨터가 아닌, 서버에 다운로드 받고 그곳에 설치해야 하므로 내 컴퓨터에서 서버가 그런 동작을 하도록 리눅스 명령어를 실행하는 것이죠.

리눅스 명령어를 통한 서버제어 예시

CLI를 통해서 서버에 접속하고 나면 서버를 제어할 준비가 되고, 서버는 리눅스 운영체제를 사용하므로 리눅스 명령어를 입력하면 됩니다.명령어를 통해서 서버가 특정 동작을 수행하도록 하는 것이죠.

리눅스 서버에 워드프레스를 설치한다고 한다면 위 그림처럼 먼저 (1)wordpress설치파일.zip 이라는 파일을 인터넷 어딘가에서 다운받도록 명령어를 내려주면 (2),(3)리눅스는 제시된 웹주소를 통해 zip파일을 다운로드 받습니다.

그 다음으로 이번엔 zip파일의 압축을 풀으라는 명령을 넣어 압축을 풀고나면 리눅스용 워드프레스 설치프로그램이 나올테고 또 그 다음으로 해당 설치파일로 워드프레스를 설치하라고 명령을 내려줍니다.

이러한 리눅스 명령어는 텍스트 문장으로 이루어져있습니다. 오늘날 컴퓨터에서는 마우스 클릭을 통해서 프로그램을 제어하는 GUI기반이 많지만 서버관리, 프로그래밍 영역에서는 GUI를 잘 사용하지 않고 예전방법이 여전히 많이 쓰이므로 서버관리자는 Mac의 터미널 같은 CLI와 친해져야합니다.

 

1) 웹콘솔 접속:  아마존 라이트세일 웹페이지에서 서버에 접속하기(CLI: SSH)

이 전에 다른 글에서 이미 말했지만 다시한번 방법을 얘기해주자면, 라이트세일 웹페이지에서 인스턴스를 선택하면 아래와같은 모습이 나타나고 Connect using SSH 버튼을 눌러 서버에 곧바로 접속할 수 있습니다.  

 

웹에서 SSH 접속

접속하고 나면 검은색 화면이 나타나게 됩니다. 이것이 웹콘솔을 이용한 접속이며 웹콘솔은 아마존에서 자체 제공하고 있습니다. 이미 AWS에 로그인된 상태이므로 별도의 비밀번호도, 키파일도 필요없습니다. 하지만 웹페이지 환경이라서 제어가 답답할 수 있거나  새로고침이 안되거나 하는 문제가 있을 수 있습니다.

다음으로는 자신의 컴퓨터에설치되어있는 CLI툴(프로그램)을 사용해서 접속하는 방법을 알아보겠습니다.

2) CLI 프로그램을 이용해 서버로 접속하기(SSH)

서버접속을 위한 CLI 툴 소개

먼저 CLI를 사용할 프로그램 소개부터 하겠습니다. 저는 매킨토시 컴퓨터(Mac) 사용자라서 터미널(Terminal)앱을 사용해서 접속하지만 윈도우사용자도 사용하는 프로그램이 다를 뿐 자신에게 맞는 CLI 툴을 사용하시면 됩니다. 맥에는 터미널이라는 프로그램이 기본적으로 설치되어있고 SSH를 바로 이용할 수 있습니다.

맥의 터미널 앱은 아래처럼 생겼습니다.

터미널 앱

아래는 제 터미널을 실행한 모습 입니다. (자신의 터미널과 뭔가 다르다고 생각되어도 개의치 마세요.)

터미널 첫 시작 모습
터미널 첫 시작 모습

터미널에 나타난 마지막 줄 은 ‘컴퓨터이름:~사용자이름$’ 처럼 이루어져 있습니다. $사인은 명령줄의 첫 시작을 의미합니다. 보통 인터넷에서 다른 사람들의 블로그에 명령어를 써둔 것을 보면 $나 #을 앞에 붙여두는데 실제로 자신의 터미널에 입력할 때에는 이 시작문자를 제외하고 입력해주면 됩니다.

아직은 서버에 접속하지 않았으므로 터미널에 입력하는 것은 리눅스 명령어가 아닌 맥용 명령어를 입력해서 자신의 컴퓨터를 제어할 수 있습니다. 리눅스와 맥이 비슷한 점이 많지만 사용가능한 명령어가 조금씩 다릅니다. 또한 CLI를 통해서만 사용하는 프로그램도 설치해 쓸 수 있습니다.

 

서버로 SSH를 이용해 접속하기

 이전에 워드프레스 설치하기 글에서 초기 관리자 비밀번호를 알아내는 방법에서는 웹브라우저에서 AWS계정이 로그인된 채로 접속하기 때문에 암호키 인증서(.pem파일)가 필요없었지만 터미널에서 접속하려면 .pem파일을 필요로 합니다.

다운 받았던 개인암호키 .pem파일을 사용하려면 먼저 권한 설정을 해줘합니다. macOS 사용자는 터미널을 열고 아래와 같은 예로 입력해줍니다.

chmod 600 /폴더/경로/암호키.pem파일

중요: 윈도우 컴퓨터를 쓰신다면 여기 링크글에 나온대로 pem파일을 준비하시면 됩니다.

위 명령어에서 /폴더/경로/암호키.pem파일은 암호키파일이 위치한 전체 경로를 입력해야하고 폴더명이나 파일명 중간에 띄어쓰기가 있다면 그 앞에 백슬래쉬를 넣어줘야합니다. 아래처럼 말이죠.

터미널에서 암호키 권한 설정

이 때 경로를 간단하게 입력하는 방법으로 파일을 터미널에 끌어다놓으면 경로가 저렇게 입력됩니다. 이제 개인 암호키를 이용해서 접속할 준비가 되었습니다.

이제 접속하려면 라이트세일 서버 인스턴스의 IP와 그 서버의 사용자이름을 알아야하는데 비트나미 워드프레스는 사용자이름이 bitnami입니다. IP 주소는 이전에 워드프레스 서버에 IP와 도메인 연결하기 글에서 Static IP를 연결했다면 Static IP를, 연결하지 않았다면 Public IP로 연결하면 됩니다.

 

SSH 명령어를 통해 원격서버에 접속하는 명령어는 아래와 같습니다.

ssh -i /폴더/경로/암호키파일.pem 서버사용자이름@IP주소

제경우 아래처럼 입력했습니다.

SSH 명령어 원격서버로 연결 시도

 보안 관계상 SSH 프로그램은  등록된 서버주소가 아니면 위 처럼 매번 경고가 출력되게 됩니다.

“The authenticity of host ‘XXX.XXX.XXX.XXX’ can’t be established”

이 메시지가 안나오게 하려면 자신의 컴퓨터 SSH설정에 IP를 등록해줘야하는데 이것은 다음에 기회가 있을 때 알아보기로 하고 그냥 yes를 입력해 넘어갑니다.

리눅스 서버에 성공적으로 접속된 모습

리눅스 서버에 성공적으로 접속하자 그 곳에 설치된 비트나미가 반겨줍니다. 이제 $앞에 내 컴퓨터 이름과 사용자가 아닌, 리눅스서버사용자@서버IP~가 표시되어있는걸 볼 수 있습니다. 이제 이곳에서 입력하는 모든 명령어는 원격지에있는 서버에 내리게 되는 것이죠. 

최초 접속시 폴더 위치는 bitnami라는 사용자의 홈폴더입니다. :$사이의 문자는 경로를 나타내는데 사용자 홈폴더의 축약어인 ~이 있는걸 보실 수 있습니다. ls 같은 명령어를 입력하면 현재폴더에 어떤 서브폴더와 파일이 있는지 보실 수 있습니다. 

하지만 CLI로는 서버의 폴더구조를 한눈에 알아보기 어려운 관계로 FTP 클라이언트를 이용하면 평소 내 컴퓨터의 탐색기나 파인더에서 보는 것처럼 서버의 폴더구조를 볼 수 있습니다. 다음으로는 SFTP 접속을 알아보겠습니다.

 

그 전에 아래 링크의 내용도 CLI 명령어 사용에 유용하므로 알아두는 게 좋습니다.

FTP 클라이언트로 서버에 접속하기

FTP 클라이언트는 명령어줄이 아닌, 익숙한 GUI를 가진 프로그램으로서 사용하기 한결 편합니다. 서버에 파일을 업로드하거나 다운로드하고 동기화할 때 또는, 서버에있는 파일을 간편히 수정할때 사용할 수 있습니다.

그냥 FTP 접속은 보안이 떨어지고 서버 비밀번호를 이용해서 접속이 가능하지만 SFTP는 암호key를 통한 접속을 전제로 합니다. 그리고 아마존 라이트세일 서버 인스턴스는 접속 비밀번호를 주지 않으므로 다운받았던 암호키를 지정해 SFTP로 접속해야합니다.

SFTP 클라이언트 프로그램 소개(Mac)

윈도우나 Mac 컴퓨터사용자를 위한 무료 SFTP 클라이언트는 여럿있지만 저는 유료로 판매되고 있는 Mac용 Transmit 프로그램을 이용합니다. 지인 추천으로 평소에 트랜스밋을 알고 있었는데 얼마전에 5버전이 나왔고, 또 다른 지인이 선물해 주었습니다. 그 전까지는 Forklift 2를 썼지요.

트랜스밋은 맥앱스토어에서 판매되지 않고 패닉 개발사의 홈페이지에서만 판매됩니다. 7일간 무료로 트라이얼 버전을 사용해볼 수 있습니다.

포크리프트도 3버전이 최근 새로 나왔지만 이 역시 홈페이지에서만 판매되고, 포크리프트 2버전은 현재 맥앱스토어에서 무료로 받을 수 있습니다만 트랜스밋에 비해 갱신속도가 느리고, 원격지파일 이름수정과 새파일만들기할때 오류가 있어서 저는 이제 사용하지 않네요. 포크리프트 3버전은 얼마나 나아졌는지 모르겠습니다. 무료로는 2도 쓸만합니다.

그리고 사람들이 가장 많이 쓰이는 FTP 프로그램인 파일질라도 있습니다. 제 블로그에도 파일질라 다운로드 방법과 사용 설명을 간단히 해놨으니 참고해보세요. 

3) SFTP 클라이언트로 서버 접속방법

트랜스밋이든 다른 FTP 클라이언트이든 SFTP 접속방법은 맥락이 같으므로 아래글을 보고 익히시면 됩니다. 트랜스밋을 설치하고 나면 아래그림처럼 Quick Connect 화면이반겨줍니다. Command + N 키를 눌러도 나옵니다. 

SFTP 연결정보 입력화면

왼쪽 칸은 로컬파일인 내 컴퓨터의 폴더들이고 오른쪽 화면에는 서버 폴더가 나오게 되는데 아직은열결되지 않아서 연결정보를 입력해야합니다.

 Quick Connect 화면에서 1번 항목은 SFTP를 선택하고 2번항목에 IP주소를 넣으면 되는데 저는 서버에 도메인을 연결한 상태이므로 IP주소대신 도메인을 입력했습니다.

3번은 서버컴퓨터의 사용자이름을 입력해줘야합니다. 저는 비트나미 워드프레스 이미지를 설치했으므로 bitnami 사용자명을 사용합니다. 서버에 LAMP 스택이나 LEMP 스택 또는 우분투 리눅스만 설치했다면 사용자이름이 ubuntu 일 것입니다.

 

그리고 4번항목에 비밀번호 입력칸은 비워두고 그 옆에 있는 열쇠모양을 클릭한 뒤 가지고있는 암호키.pem파일을 지정해줘야합니다.

이 단계에서 보통 다른 SFTP클라이언트는 지정만 해주면 되지만 트랜스밋 5버전에서는 최초에는 환경설정의 Keys 목록에 먼저 추가하고 나서야 다음부터 목록에서 선택해 접속할 수 있습니다.

트랜스밋에 키파일 등록

위 그림처럼 암호키 목록 팝업창이 나오면 Edit을 눌러 환경설정을 열고 + 버튼 > Import Keys.. 을 눌러 다운받았던 암호키.pem파일을 내 컴퓨터에서 찾아 지정해준 뒤, 환경설정창은 닫고 다시 열쇠 아이콘을 클릭해 해당 키를 지정해줍니다.

암호키가 지정되었다면 Connect버튼을 눌러 서버에 접속하시면 됩니다:

Connect 버튼을 눌러 연결시도

참고: 트랜스밋 5는 위 화면에서 Connect하지 않고 그 옆에 Add to Servers 버튼을 눌러 자주쓰는 서버목록에 저장했다가 다음부터는 Servers 항목에서 원 클릭으로 선택하여 접속가능합니다.

 

아래는 서버의 사용자 홈폴더에 최초 접속된 모습입니다. 왼쪽은 제 맥컴퓨터의 사용자폴더이고 서버는 오른쪽칸에 보여지고 있습니다.

비트나미 사용자 폴더 모습

윗줄에 bitnami라고 써있는 사용자 홈폴더 이름을 클릭해서 상위폴더로 갈 수 있고, 전체 폴더구조를 보기쉽도록 보기방식을 아래처럼 아웃라인뷰 모드로 바꾸어 볼수 있습니다.

워드프레스 폴더 위치

위에 보시는 것처럼 비트나미 워드프레스의 폴더 /opt/bitnami/apps/wordpress/htdocs/ 인걸 알 수 있습니다.  bitmami가 아니라 자신이 처음부터 워드프레스를 다운받고 설치한다면 워드프레스 폴더의 경로가 위와는 다를 것입니다. (보통은 /var/www/html/쪽에 설치됩니다)

위에 표시한 워드프레스 폴더는 방문자들이 도메인으로 접속했을 때 홈페이지(루트)와 같은 위치입니다. http://도메인이름.com/ 처럼 접속하면 이 폴더의 index.php파일이 최초 실행되어 워드프레스 홈페이지를 만들어내기 시작한다고 생각하면 되고 그 보다 상위폴더로는 접근할 수 없습니다.

웹브라우저에서 워드프레스에 로그인하여 관리자 페이지에서 워드프레스 폴더안의 파일내용을 수정할 수는 있지만, 위 그림에서 나머지 왼쪽에 나타나는 상위 폴더에는 접근이 안되고 이글에서 설명한 방법으로 접근해야 수정,추가 가능합니다. 단순히 워드프레스를 운영하고 플러그인을 만들거나 업로드하는데에는 워드프레스 폴더에서만 하면 되지만 저처럼 아파치 웹서버설정을 변경해야한다면 이처럼 서버관리를 위한 접속이 필요할 것입니다.

 

SFTP로 접속했다고 해도 파일을 수정하거나 업로드하려면  파일,폴더에 쓰기권한 문제가 있을 수 있는데, 이 권한은 CLI로 접속해서 서버사용자가 아닌 root권한하에 바꿔줄 수 있습니다. root사용자는 보안관계상 SFTP 접속이 금지되어있기 때문이죠.

워드프레스 설치하기 글에서 비트나미 워드프레스 이미지로 시작했다면 이런 문제가 적어도 워드프레스 폴더 내에서는 없을 것입니다.  그렇지 않고 워드프레스를 직접 다운로드받아 설치했는데 플러그인 설치나 업데이트가 안되는등의 문제가 있다면 보통은 서버사용자에게 파일 쓰기권한이 없기 때문인 것입니다.

 

트랜스밋 5의 사용법은 탐색기나 파인더와 UI가 비슷하니 어렵진 않을 겁니다.  Transmit 5 더블클릭 동작 변경하기 글이 도움이 될 수 있을 것같습니다.

참고로 아이폰, 아이패드 사용자라면 패닉 개발사의 Coda 앱을 구매하고 암호키를 아이폰,아이패드에 복제하여 SFTP, CLI를 통한 SSH 접속 및 서버파일 수정, HTML/CSS/JS/PHP코드 작성등을 할 수 있습니다.

트랜스밋5를 사용한다면 동기화계정에 가입하여 즐겨찾기하는 서버목록이나 암호키파일을 동기화하여 자신의 다른 Mac이나 모바일에서 편하게 접속가능하기도 합니다.

여기까지 읽고 이해했다면 이제 서버관리를 위한 기초기반을 갖추었다고 볼 수 있습니다. 행운을 빕니다.

다음단계

시리즈 연재작 다음 단계에서는 워드프레스 초기 설정과 도메인 리다이렉팅 방법을 알아보겠습니다.

참고할만한 글

12 댓글

    • 윈도우개발 환경은 제가 잘 모릅다. 맥과 함께 개발을 시작해서요 ㅎㅎ ftp는 파일질라가 무료에 윈도우용과 Mac용 둘다 있으니 그걸로 올려보면 되긴 할건데 저는 다른걸 쓰네요. 파일질라 사용법은 검색해보면 많이 나올거예요.

      하지만 아무래도 제 글쓰기 스타일을 좋아하시는 것 같으니 제 방식대로의 안내를 해드릴 수 있도록 언제 시간 내보겠습니다.

  1. 안녕하세요 스위프티님 정성스럽게 올려주신 글로 큰 도움을 받고있습니다. 올려주신글대로 진행을 해와서 워드프레스까지 다 깔았는데 FileZilla접속을 위해 지금 올려주신 과정을 위해 터미널에 chmod 600 명령을 진행하려고 하는데 계속 ‘chmod’ is not recognized as an internal or external command, operable program or batch file. 계속 이런 메세지가 뜨는군요. 말씀주신대로 계속진행하는데도 않되는군요. 고견을 부탁드립니다.

    • 쓰시는 컴퓨터가 윈도우신가요? 제가 윈도우를 안써서 잘모르긴한데 아마도 윈도우 터미널은 chmod 명령어가 없나봅니다. 리눅스 명령어가 지원되는 윈도우 쉘 프로그램같은게 있을 것같긴 한데말예요.
      chmod 는 단순히 파일의 읽기 쓰기 권한을 설정하는 명령어예요.
      600은 파일의 소유자만 읽기, 쓰기 가능하게 하는 권한이고요.
      chmod 단계를 건너띄고 해보시거나
      다른 방법으로 pem 파일소유자가 읽기 쓰기 권한을 갖도록 하는 방법을 찾아보셔얄 것같아요.

      일단 저도 저녁때 집에들어가서 윈도우에서 할 방법을 추가로 찾아보겠습니다.

      • 말씀주신대로 chmod단계를 뛰어넘어 ssh -i 로 입력을 했는데 아래와 같은 경고문이 뜨는데 이건 chmod 단계를 거치지 않아서 생기는것같습니다.

        Warning: Identity file /Dev/Key/LightsailDefaultPrivateKey-us-west-2.pem not accessible: No such file or directory.

        • 해댕 메시지는 파일을 못 찾아서 인것같습니다 경로는 드라이브명을 포함한 전체경로를 입력해줘야합니다 /dev/ 앞에 더 있을 것같네요

  2. 많은 도움 됐습니다 ~ 아마존 라이트 세일부터 .. 블로그 완성까지 많은 도움 주셔서 감사합니다 ㅎ

댓글을 남겨주세요.(익명, 구글, wordpress,페이스북, 트위터 계정 로그인 지원) 마크다운 문법 사용가능