리눅스 명령어 환경으로 원격 접속하는 방법 (Linux console client)

HYEONG HWAN, MUN/ 10월 13, 2018/ 미분류/ 4 comments

https://blog.lael.be/post/7574

요즘 너무 기초 단계라고 생략하고 넘어간 것들에 대해 설명하는 글을 작성하고 있다.

이 글에서는 당신의 운영체제 환경에서 원격 리눅스 시스템에 접속하여 명령어를 사용하는 방법에 대해 설명하도록 하겠다.

 

GUI 와 CLI

인터페이스란 사물 간 또는 사물과 인간 간의 의사소통이 가능하도록 만들어진 매개체를 의미한다.

인터페이스의 종류는 매우 많다.
하지만, 사람과 - 인간 사이의 인터페이스는 Graphic User Interface 와 Command Line Interface , 이 두가지를 주로 사용한다. (먼 훗날에는 텔레파시 인터페이스나, 뇌파 인터페이스를 쓸지도 모른다.)

 

GUI 는 매개체가 그래픽이다. 터치스크린이나, 마우스, 키보드 입력으로 화면(그래픽)이 변하고 작업을 실행한다.

CLI 는 매개체가 커맨드라인이다. 키보드 입력으로 명령어(command)를 입력하여 작업을 실행한다.

 

현대의 대부분의 대중적인 운영체제는 GUI 와  CLI 를 모두 지원한다.

< Windows Server 2012 R2 - GUI >

 

< Ubuntu 18.04 LTS - GUI >

 

< Windows Server - CLI >

 

< Ubuntu - CLI >

 


GUI 는 실제로 뒷단에 많은 command 가 실행되고 있다.

영화 매트릭스에 비유하자면, 이런 느낌이다.

Windows 는 GUI 위주로 개발되었다. Server 운영체제에서 특정 옵션을 선택해서 CLI 만 설치되게 할 수도 있다.
Linux 는 CLI 위주로 개발되었다. 명령어로 KDE, XFCE, LXDE, Gnome 등을 설치하면 GUI 가 설치된다.

 

서버의 경우 굳이 리소스 낭비를 할 필요가 없기 때문에 대부분 CLI 를 사용한다.
동일 하드웨어에서 CLI 의 성능이 GUI 성능보다 잘나온다. (당연한 것임)
다만 요즘엔 하드웨어가 매우 좋아져서 크게 차이나지는 않는다.

세계적인 통계사이트 W3tech 에 따르면, 현재 웹서비스 운영체제 점유율은 Linux : Windows 가 7:3 정도 된다고 한다. https://w3techs.com/technologies/overview/operating_system/all

 

실제로 대부분의 서버 소프트웨어리눅스 환경 위주로 개발되어 있고, 설치방법도 명령어로만 안내하는 곳이 많다.

예시 : 유명한 git 서버 소프트웨어 설치 가이드 페이지 - https://about.gitlab.com/installation/#ubuntu
(당연히 Linux 에서 구동할 것이라고 가정하며, GUI 가이드 또한 없다.)

 


당신이 (웹, 게임) 서비스를 구축한다면, 리눅스를 사용하게 될 것이고, CLI 를 쓰게 될 것이다. 즉 서버 개발자라면 CLI 를 쓰게되는건 피할 수 없음.

이 글에서는 그 CLI 를 쓸 수 있게 하는 최초 단계인 “접속” 방법에 대해 설명할 것이다.

 


알면 좋은 상식

리눅스 cli 로 접속은 ssh(시큐어쉘;SecureSHell) 을 사용하며 통신은 TCP 22 번 포트를 사용한다.

ssh 접속을 사용하기 위해서, 리눅스 서버에는 ssh server (ssh daemon)을 설치해야 한다. 이것은 대부분의 리눅스에서 기본적으로 설치되는 프로그램이다.

아무튼 서버 환경은 멀쩡하다고 가정하고, 클라이언트 접속 방법에 대해 알아보자.

 

Secure Shell Client (SSH 클라이언트)

2018년 현재 널리 사용되는 ssh client 는 다음과 같다.

  • putty
  • xshell
  • mobaXterm

* putty

공식사이트 : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

1997년에 최초 개발되었고, 라이센스가 “누구에게나 무료” 이기 때문에, 여러 교과서에서 이 프로그램 위주로 설명한다.
근데 발전이 없어서, 디자인이 별로고 사용이 불편하다.

* xshell

공식사이트 : https://www.netsarang.co.kr/download/free_license.html

비교적 최근에 개발되었고 UI, UX 가 편리하다.
개인, 학교에서 교육용으로는 무료이고, 그 이외에는 1년에 10만원 이용료를 내야한다.

* mobaXterm

공식사이트 : https://mobaxterm.mobatek.net/download.html

집에서 쓰는건 무료. 그외에는 유료 구매(평생 이용) 7만원.


라엘이는 MacOSX 를 쓰기 때문에 ssh 클라이언트를 따로 설치하지 않아서 몰랐는데, Windows 에서 별로 쓸만한 툴이 없다는 것을 느꼈다.

이제는 ssh client 를 만들 수 있는 능력이 되기 때문에, 지금 만들고 있는 프로젝트가 끝나면 이걸 만들어서 배포하도록 하겠다. (그 전까지는 아래의 프로그램을 쓰세요.)

 

** 저의 추천 프로그램 **

* Google Secure Shell

공식사이트 : https://chromium.googlesource.com/apps/libapps/+/master/nassh/doc/FAQ.md

Google Inc. 에서 개발 하였다. “누구에게나 무료” 이용가능. 크롬 확장(Chrome Extension)으로 개발되어 추가 exe 설치 필요 없음. 크롬 브라우저에 로그인 하여 여러 기기(Windows, Mac, Linux)에서 사용 가능.

Beta 라서 기능이 많이 없긴한데, 이용하기에 충분하다. 라이센스 문제로부터 안전하고, 설치 또한 안전하기 때문에 강력 추천한다.

 

- 설치방법 : Chrome 브라우저에서 https://chrome.google.com/webstore/detail/secure-shell-extension/iodihamcpbpeioajjeobimgagajmlibd?hl=ko  으로 이동 후 설치 클릭.

 

요런것이 추가되는데, [클릭] 후 [연결 대화상자] 선택.

사용자 이름, 호스트 이름 입력 후 연결!

 

키 방식 로그인을 하려면 “가져오기” 를 클릭한 다음에 public 키private 키를 선택하면 된다.
이때 파일명은 동일해야하며, public 키는 .pub 확장자, private키는 확장자가 없어야 한다.
예를 들어 id_rsa.pubid_rsa 를 불러와야함.

 

[연결] 을 누르면 서버에 연결되고 command 를 입력할 수 있는 화면이 나타난다.

끝.

 

리눅스 서버의 파일 목록을 확인하고, 파일을 전송, 파일을 다운로드 하시려면 Filezilla (https://filezilla-project.org/download.php?type=client) 를 설치해서 접속해보세요.

Filezilla : 전세계에서 가장 많이 쓰이는 파일 전송 프로그램. 누구나 무료 사용가능.

 

 

4 Comments

  1. 구글은 정보 털릴것 같아서 ㅎㅎ

    이미지 캐싱정보좀 포스팅해주세요..

    클플같은 원리 이용하는..?

    1. 헉 그 글을 기다리시는 분이 있으시다니..

      1. 저도 너무나도 기다리고 있습니다 ㅠㅠ 라이트세일이 회선 상태는 엄청 잘 관리되는데 CPU성능이 좋지 않기에 리노드 도쿄 리전이나 아니면 해외 VPS이용 시 이미지 파일을 캐싱하는 용도로 사용하는 방법을 알아보고 있어요….

        이번 글도 너무 잘 보았습니다~ 라엘님의 블로그는 제가 사이트를 운영하는데 항상 큰 도움이 됩니다. 너무 감사드립니다

        1. 우선 대충 적었는데 https://blog.lael.be/post/7605 이 글 따라서 해보세요.

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*