ssh 사용

인증서 생성 방법

리눅스의 경우 아래의 순서대로 생성한다.

  • Run: ssh-keygen -t rsa. For a more secure 4096-bit key, run: ssh-keygen -t rsa -b 4096
  • Press enter when asked where you want to save the key (this will use the default location).

    서버별로 인증서를 생성하고 싶다면 default 가 아닌 파일명을 입력하여 생성하면 된다.

    ex) Enter file in which to save the key (/root/.ssh/id_rsa): ./vultr_rsa
  • Enter a passphrase for your key.
  • Run cat ~/.ssh/id_rsa.pub - this will give you the key in the proper format to paste into the control panel.

    서버별로 인증서를 생성했다면 생성된 파일명과 동일하게 설정한다.

    ex) ./vultr_rsa.pub
  • Make sure you backup the ~/.ssh/id_rsa file. This cannot be recovered if it is lost.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@greg ~]# ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:tRA6/GzG8DevAa+euo6DX4WrLf+f+Bbdcw8Nfy+JVLs root@greg.lee
The key's randomart image is:
+---[RSA 4096]----+
| . |
| . . . |
| = . . |
| O o . o |
| . S +. o = |
| = +.oo = =|
| . o oo.. + |
| . o= +.+. E o|
| .+==+= . |
+----[SHA256]-----+

ssh 명령 기본 사용법

ssh 명령의 기본 사용은 아래와 같다

1
[root@greg: ~] ssh {사용자ID}@{서버명}

아래와 같은 명령을 내릴 때 ssh 명령은 ~/.ssh/id_rsa 키 파일을 사용하여 vultr 서버에 root 계정으로 로그인을 시도한다.

1
[root@greg: ~] ssh root@vultr

기본 ssh 키 (~/.ssh/id_rsa) 가 아닌 다른 ssh 키 파일을 사용해야 한다면, 다음과 같이 -i 옵션을 사용해야 한다.

1
[root@greg: ~] ssh root@vultr -i ~/.ssh/vultr.pem 

~/.ssh/config 설정 파일

여러 ssh 키 파일을 사용할 때 발생하는 문제는 ~/.ssh/config 파일로 해결할 수 있다.

1
2
3
4
5
6
7
8
9
10
### for vultr
Host vultr
HostName 123.123.123.123
User root
IdentityFile ~/.ssh/vultr.pem

### for git
Host github.com
User git
IdentityFile ~/.ssh/id_rsa_xxxxxxxxxxx

이렇게 설정할 경우 단순히 아래의 명령으로 해당 서버의 접속이 가능하다

1
[root@greg: ~] ssh root@vultr

이제 파일 소유권자만 설정 파일을 읽을 수 있도록 권한을 제한해야 한다.

1
[root@greg: ~] chmod 440 ~/.ssh/config

~/.ssh/config 설정 파일 구성

호스트 매핑

호스트 매핑은 Host 속성과 HostName 속성을 이용하여 실제 호스트 URL 에 매핑을 한다.

  • Host: ssh 명령에 사용하는 이름
  • HostName: host 에 지정된 이름이 매핑되는 실제 호스트명

와일드 카드를 이용하여 서브 도메인 지정도 가능하다.

1
2
3
4
5
6
7
8
9
10
11
### for vultr
Host vultr
HostName 123.123.123.123
User root
IdentityFile ~/.ssh/vultr.pem
Port 12345

### for git
Host x.greg.com
User git
IdentityFile ~/.ssh/id_rsa_xxxxxxxxxxx