WAS Engineer - Linux 11번째

이정빈·2022년 9월 29일
0

리눅스 복습

목록 보기
11/11
post-thumbnail

원격 로그인과 SSH

이 블로그는 로컬 머신에 있는 리눅스에 로그인하는 것이 전제로 작성되었으나, 네트워크만 연결되어 있다면 다른 머신에 있는 리눅스에 로그인하는 것도 가능하다. 로컬 머신에서 다른 머신에 로그인하는 것을 원격 로그인이라 한다.

CLI 환경의 리눅스에서 원격 로그인하는 가장 대표적인 방법은 SSH이다.

  1. SSH

SSH란 Secure Shell의 약자로 원격 머신과 통신하기 위한 프로토콜이다. 인증과 암호화 기능을 갖추고 있어 보안을 잘 유지하며 원격 머신과 통신할 수 있다. 보통 TCP 22번 포트(22/tcp)를 사용한다.

SSH는 원격 로그인뿐 아니라 파일을 전송할 때도 사용하는 프로토콜이다. 그 외에도 다양한 목적으로 사용되지만 여기서는 원격 로그인에 대해서만 알아보겠다.

윈도에서 SSH로 원격 로그인하려면 SSH 클라이언트를 별도로 설치해야 한다. 대표적인 SSH 클라이언트로 PuTTY와 Tera Term이 있다. 이들 클라이언트는 엄밀히 말해 SSH를 지원하는 터미널 에뮬레이터지만 단순히 SSH 클라이언트라고 생각해도 무방하다.

맥에서는 별도의 SSH 클라이언트를 설치할 필요가 없다. 기본으로 설치되어 있는 터미널을 실행한 뒤 다음과 같이 접속할 머신의 IP 주소를 지정하여 ssh 명령어를 실행하면 된다.

  • ssh 명령어로 원격 로그인
ssh <로그인 유저명>@<접속할 IP 주소>

이 때 처음 접속하는 리눅스 머신에 정말로 접속할지를 확인하는 프롬프트가 표시된다. 이는 대상 호스트를 등록하기 위한 절차로 yes를 입력한다. 그러면 암호를 입력하라고 표시되고 입력하면 로그인된다.

  1. 버추얼박스와 ssh 접속

버추얼박스의 가상 머신에 SSH로 접속하려면 별도의 설정이 필요하다. 버추얼 박스의 포트 포워딩 기능을 사용하여 ssh로 접속하는 방법을 소개하겠다.

  • 포트 포워딩 설정

버추얼 박스로 만들어진 가상 머신의 네트워크 어댑터는 기본적으로 NAT 모드를 사용한다. 이 상태에서는 가상 머신의 네트워크와 호스트의 네트워크가 분리되어 있어 직접 접속할 수 없다. 그래서 포트 포워딩을 사용해야 하는데, 호스트의 2222/tcp를 게스트의 22/tcp(ssh)로 연결해보겠다.

포트 포워딩을 설정하려면 먼저 가상 머신을 정지한 뒤 버추얼박스의 메뉴 머신 -> 설정을 선택한다. 그리고 네트워크에서 어댑터 1 탭의 고급을 클릭한 뒤 포트 포워딩 버튼을 클릭한다.

포트 포워딩 설정 화면에서 + 버튼을 클릭하여 룰을 추가한다. 호스트 포트에 2222를, 게스트 포트에 22를 설정한다. 그러면 호스트의 2222/tcp가 게스트의 22/tcp에 연결된다.

info 도큐먼트

info는 온라인 매뉴얼을 출력하는 명령어이다. man의 진보된 형태로 다음과 같은 장점이 있다.

  • 도큐먼트에 색인이나 계층 구조 설정 가능
  • 긴 도큐먼트를 분할하여 여러 페이지로 다룰 수 있다
  • 도큐먼트 간 상호 참조가 가능하다

대부분의 명령어에 대해 man보다 info가 더 상세한 내용을 담고 있다. 하지만 info 명령어를 다루는 방법은 꽤 복잡합니다. 그래서 아직까지 man이 없어지지 않고 info와 공존하고 있다. 하지만 man보다는 info를 참고해야 하는 경우가 많으므로 이번 장에서는 info 명령어의 사용법을 알아보겠다.

  1. info 도큐먼트 형식
  • 명령어에 대해 조사
info <명령어 이름>
  • find 명령어에 대한 info 도큐먼트
$ info find
  • find 명령어에 대한 info 도큐먼트
Next: Invoking locate, Up: Reference

8.1 Invoking 'find'
============
...생략...

화면을 스크롤할 때는 space를 누르고, 종료하려면 q를 입력한다.

파일과 노드

info로 출력되는 도큐먼트는 파일과 노드라는 두 요소로 구성된다.

파일은 이름 그대로 텍스트를 담고 있는 물리적인 파일을 의미하며 도큐먼트 하나에 해당한다. 앞서 find로 출력된 find 명령어의 도큐먼트 전체가 파일이다.

파일은 복수의 노드로 분할되어 있다. 노드는 내용에 따라 분할된 논리 단위로 책으로 따지면 장이나 절에 해당한다.

그리고 노드는 다른 노드에 대한 링크를 가질 수도 있다. 그래서 노드를 읽다가 다른 노드로 이동할 수 있는데 이것이 man과 다른 점이다.

man에서는 다른 도큐먼트를 읽으려면 일단 man 명령어를 종료하고 다시 실행해야 한다. 하지만 info에서는 명령어를 종료하지 않고도 다른 도큐먼트로 이동할 수 있다. 이는 HTML 페이지를 열람하는 것과 비슷하다.

노드의 계층 구조

노드는 계층 구조로 구성되어 있다. info 도큐먼트의 첫 행에는 다음 노드, 이전 노드, 상위 노드의 정보를 담은 노드 헤더가 표시된다.

info 도큐먼트의 최상위 노드의 이름은 Top이다. 현재 위치한 노드에서 u를 눌러 상위 노드로 이동하다 보면 Top에 도착하게 된다. 혹은 t를 입력하면 바로 Top 노드로 이동한다.

  • Top 노드로 이동
Next: Introduction, Up: (dir)

Top 노드로 이동하면 위와 같은 헤더가 표시된다. 여기서 Up을 보면(dir)이라고 표시되어 있다. (dir)은 dir 파일의 Top 노드를 의미하며 모든 info 트리의 꼭대기에 위치한 노드이다.

  • 인자 없이 실행하면 (dir)가 표시됨
$ info
  1. 노드 이동

info에서 다른 노드로 이동하는 방법을 알아보겠다.

info로 도큐먼트를 읽다가 n을 입력하면 다음 노드로 이동한다. 그리고 p를 입력하면 이전 노드로 이동한다. info find를 실행하면 처음에 Invoking find라는 노드에 있다. 여기서 n을 한 번 입력하면 Invoking locate라는 다음 노드로 이동하게 된다.

이 때 n과 p로 이동하면 같은 레벨의 전후 노드로 이동하기 때문에 하위 노드는 건너뛰게 된다. 하위 레벨을 포함하여 다음 노드로 이동하려면 ]를, 이전 노드로 이동하려면 [를 입력한다.

따라서 모든 노드를 차례대로 보려면 ]를 사용하면 된다.
그리고 u를 누르면 상위 노드로 이동한다.

  • info에서 다른 노드로 이동하는 방법
단축키내용
n동일 계층의 다음 노드로 이동
p동일 계층의 이전 노드로 이동
]하위 계층을 포함하여 다음 노드로 이동
[하위 계층을 포함하여 이전 노드로 이동
u상위 노드로 이동
tTop 노드로 이동
  1. 스크롤

info 도큐먼트를 읽을 때 space를 누르면 한 화면 밑으로 스크롤한다. 노드 끝에서 space를 누르면 ]를 누를 때와 마찬가지로 다음 노드로 이동한다. 따라서 도큐먼트를 처음부터 끝까지 읽고 싶은 경우에는 space만 누르면 된다.

반대 반향으로 스크롤하려면 Backspace 또는 Delete를 누른다. 노드의 첫 부분에 있다면 [를 누른 것과 같이 이전 노드로 이동한다.

Ctrl+v를 눌러도 스크롤하지만 노드의 끝에서는 다음 노드로 이동하지 않는다. 그리고 Meta+v를 입력하면 반대 방향으로 스크롤한다.

  • Info 스크롤 조작
단축키내용
Space한 화면씩 밑으로 스크롤. 노드의 맨 끝에서는 다음 노드로 이동
Backspace 또는 Delete한 화면씩 위로 스크롤. 노드의 맨 앞에서는 이전 노드로 이동
Ctrl+v한 화면씩 밑으로 스크롤
Meta+v한 화면씩 위로 스크롤
b, 또는 Meta+<노드의 첫 부분으로 이동
Meta+>노드의 끝 부분으로 이동
  • info에서 커서 이동
커맨드내용
Ctrl + n다음 행으로 이동
Ctrl + p이전 행으로 이동
Ctrl + f다음 글자로 이동
Ctrl + b이전 글자로 이동
Ctrl + a행의 맨 앞으로 이동
Ctrl + e행의 맨 끝으로 이동
  1. 링크(참조)

info의 도큐먼트에는 다른 노드로의 링크를 포함할 수 있다. 링크를 포함하는 행은 *로 시작한다.

Ctrl + n등으로 커서를 링크를 이동하여 Enter를 누르면 해당 노드로 이동한다.
Tab을 누르면 다음 링크로 커서가 이동한다. 그리고 다른 노드로 이동한 뒤에 다시 원래 노드에 돌아가려면 l(L의 소문자)를 누른다.

  • info 커맨드의 링크 이동 조작
단축키내용
Tab다음 링크로 커서 이동
Meta+Tab이전 링크로 커서 이동
Enter링크된 노드로 이동
l이전 노드로 복귀

도움말과 튜토리얼 표시

info를 실행한 뒤 H를 누르면 화면이 위 아래로 나뉘어지면서 하단에 도움말이 표시된다. x를 누르면 이를 닫을 수 있다.

  • info 명령어 도움말 표시
커맨드내용
H도움말 화면을 열어 info 명령어 목록 표시
x도움말 화면을 닫음
  • info의 info 확인
$ info info
profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글