OpenSSH_8.2p1 / 대부분의 Linux 배포판
Host
CLI

개요


  • 서버 간 SSH(SCP) 통신이 필요할 경우 사용한다.
  • Cluster 구축 때는 필수로 사용한다.
  • node to node 통신이 가능하기에 외부에서 접속이 되면 보안 상 문제가 생길 수 있다.
  • 기본적으로 서버 간 접속 시 SSH 비밀번호 대신 SSH key를 제출하여 접속하는 방식으로 접근된다.

무인증 로그인


SSH key를 우선적으로 만들고 시작해야 한다.
ssh-keygen이라는 패키지를 통해 진행한다.

1. ssh-keygen 사용

chobo@testvm1:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/chobo/.ssh/id_rsa):
Created directory '/home/nvadmin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/chobo/.ssh/id_rsa
Your public key has been saved in /home/chobo/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:Z3fkQuch6NtkyNEAVu/jj95MhSRvQjABolXAuUA1by8 chobo@testvm1
The key's randomart image is:
+---[RSA 3072]----+
|   ..o*+o.++++*. |
|    .oo+  .o +.+.|
|    .. .o   = B..|
|      .. . . @.= |
|        E + + Boo|
|         + . =. o|
|               ..|
|               =.|
|             .o +|
+----[SHA256]-----+

key에 대해 passphrase을 설정 할 수 있으나 외부에서 사용하는 경우 아니면, 오히려 번거러운 작업이 되기때문에 간단하게 Enter키를 통하여 패스 할 수 있다.

chobo@testvm1:~$ ll ~/.ssh
total 16
drwx------ 2 chobo chobo 4096  3월 31 17:06 ./
drwxr-xr-x 6 chobo chobo 4096  3월 31 17:06 ../
-rw-rw-r-- 1 chobo chobo 2610  3월 31 17:06 autorized_keys
-rw------- 1 chobo chobo 2610  3월 31 17:06 id_rsa
-rw-r--r-- 1 chobo chobo  577  3월 31 17:06 id_rsa.pub

$HOME/.ssh안에 생성된 키들이 존재한다. autorized_keys 파일은 첫 생성일 경우에는 없을 수도 있다.

파일에 대한 설명은 다음과 같다.

id_rsaprivate key, 외부에 노출될 경우 보안적으로 문제가 생긴다.
id_rsa.pubpublic key, 접속하려는 서버에 authorized_keys 안에 입력하게 되면 무인증이 가능해진다.
authorized_keys키값 저장 파일, 접속 하려는 서버의 $HOME/.ssh 디렉토리 아래에 위치하면서 id_rsa.pub 키의 값을 저장한다.

2. SSH key 등록

SSH server의 authorized_keys의 내용은 SSH client의 id_rsa.pub 내용과 일치해야 한다. SSH 접속 시에 SSH server는 id_rsa 파일과 authorized_keys이 일치하는지확인한다. 일치하지 않으면 접속이 불가능하다.

Server의 id_rsa.pub의 내용을 Client의 authorized_keys에 넣어준다.

# Server
chobo@testvm2:~$ scp ~/.ssh/id_rsa.pub chobo@192.168.4.130:~/id_rsa.pub

# Client
chobo@testvm2:~$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

3. SSH 접속

접속 시 만약 Host(/etc/hosts) 등록이 되어있다면 hostname으로 접속할 수 있다.

ssh chobo@testvm2

4. 권한

각 파일에 대한 권한 (파일 생성 시 기본 권한)은 다음과 같이 고정하는
것이 관리에 좋다.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/authorized_keys

Ref.

  • https://wiki.formellow.com