글을 쓰는 배경
remote host에 접속할 때 대개 username, password를 입력합니다. 그런데 이러한 로그인이 빈번하면 내 공개키를 remote host에 등록하여 매번 비밀번호를 입력하지 않는 것이 효율적입니다. 이 과정을 메모해 놓고 공유하기 위해 이 글을 작성합니다.
주의사항
내 사설키를 다른 사람에게 유출하면 안됩니다. 통장의 비밀번호를 다른 사람에게 알려주는 것과 동일한 것입니다.
시험환경
local host: Macbook
local username: chrisjang
remote host: Ubuntu 18.04
remote username: salsal
전체 과정
1. local host에서 사설키, 공개키 생성
2. 공개키를 remote host 이용자에 저장하고 등록
3. local host에서 remote host로 ssh login
1. local host에서 사설키, 공개키 생성
ssh-keygen 명령어를 이용하여 생성할 수 있습니다.
chrisjangmac:~ chrisjang$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/chrisjang/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/chrisjang/.ssh/id_rsa
Your public key has been saved in /Users/chrisjang/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:uYROm5ViY********YaiSrCGd5dtj4t6VxUUqMaUYUU chrisjang@chrisjangmac.local
The key's randomart image is:
+---[RSA 3072]----+
|.o.. o=Eoo. |
|*.o. . .o . . |
|*+ .+ = . . |
|+o=...o.*o . |
|+. ******** . |
|. ..= *..o |
| +..o |
| o o |
| .o . |
+----[SHA256]-----+
ssh-keygen에 의해 이용자 홈디렉토리 아래 .ssh 디렉토리에 2개 파일이 생성된 것을 볼 수 있습니다. id_rsa는 사설키(private key)이며, id_rsa.pub는 공개키(public key)입니다.
chrisjangmac:~ chrisjang$ ls -al .ssh
total 64
drwx------ 8 chrisjang staff 256 Jul 29 20:38 .
drwxr-xr-x+ 65 chrisjang staff 2080 Jul 28 23:55 ..
-rw------- 1 chrisjang staff 2622 Jul 29 21:18 id_rsa
-rw-r--r-- 1 chrisjang staff 582 Jul 29 21:18 id_rsa.pub
사설키를 확인해 보면 임의의 문자열을 볼 수 있습니다.
chrisjangmac:~ chrisjang$ more .ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEA2MqN3STRSul2PjwYxbjNLQZmFayXPk6vu1G+/LKP0Hn1n0kF+LMw
****생략****
ENSpGUvMaFHW6Q91lNyNmL4IUrSQLPcMIJylmgiVQLIO2Xt7ZQV4ezeptkeeywT9MYnPP4
uCBJelJoTtNPGnAAAAHGNocmlzamFuZ0BjaHJpc2phbmdtYWMubG9jYWwBAgMEBQY=
-----END OPENSSH PRIVATE KEY-----
공개키를 확인해 보면 또 다른 임의의 문자열을 볼 수 있습니다.
chrisjangmac:~ chrisjang$ more .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDYyo3dJNFK6XY+PBjFuM0tBmYVrJc+Tq+7Ub78so/QefWfSQX4szDaAUFdDzOe1Z01q45griwa/Detio/WQYJ1b0FDk3thgb8Cu18HdslzcSOQQ2xdKrtCmge7ZXho8ZZF1KGLpdUaOFUkK4bjCl***********si649Nmvebd/f6BzGDdfe7ejly7LJ/hilTDF6EsXMhOO+4ayRbulyyRpbARjyBsUnfh3uFEd2tzBTwjSTj/wANF96k+wtB4mL7KaXZSME1ZBTE08uDvVJ6YeP1p2Bv8QPz5+4EoS8XyAse3c/D4AM/SfdgESbBju0LMoh2VL9zBFlZzcQ46gNJF6GgiRoGrN4NDgOdX/zUlaZPJvFqQk4OrnoO3PmNQmDc= chrisjang@chrisjangmac.local
2. 공개키를 remote host 이용자에 저장하고 등록
공개키는 일반 알파벳과 숫자로 이루어진 문자열이므로 파일복사나 클립보드 복사 등을 이용하여 remote host에 저장합니다. 저장 위치는 remote host 의 이용자 salsal 홈디렉토리 밑 .ssh 디렉토리 입니다. 공개키를 등록하는 파일이름은 authorized_keys 입니다.
salsal@host1:~$ ls -al .ssh
total 12
drwx------ 2 salsal salsal 4096 7월 29 21:24 .
drwxr-xr-x 16 salsal salsal 4096 7월 29 20:33 ..
-rw-rw-r-- 1 salsal salsal 582 7월 29 21:24 authorized_keys
salsal@host1:~$ more .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDYyo3dJNFK6XY+PBjFuM0tBmYVrJc+Tq+7Ub78so/QefWfSQX4szDaAUFdDzOe1Z01q45griwa/Detio/WQYJ1b0FDk3thgb8Cu18HdslzcSOQQ2xdKrtCmge7ZXho8ZZF1KGLpdUaOFUkK4bjCl***********si649Nmvebd/f6BzGDdfe7ejly7LJ/hilTDF6EsXMhOO+4ayRbulyyRpbARjyBsUnfh3uFEd2tzBTwjSTj/wANF96k+wtB4mL7KaXZSME1ZBTE08uDvVJ6YeP1p2Bv8QPz5+4EoS8XyAse3c/D4AM/SfdgESbBju0LMoh2VL9zBFlZzcQ46gNJF6GgiRoGrN4NDgOdX/zUlaZPJvFqQk4OrnoO3PmNQmDc= chrisjang@chrisjangmac.local
3. local host에서 remote host로 ssh login
local host (chrisjangmac) 에서 remote host (host1)로 ssh login을 시도합니다. 비밀번호 없이 바로 로그인할 수 있습니다.
chrisjangmac:~ chrisjang$ ssh salsal@localhost
ED25519 key fingerprint is SHA256:p+o1hfkZg0a8CDOG5bA557Kn9Kovy3/4nQK+Smnifqg.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:50001' (ED25519) to the list of known hosts.
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-80-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 updates can be applied immediately.
New release '20.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Your Hardware Enablement Stack (HWE) is supported until April 2023.
Last login: Thu Jul 29 22:01:01 2021 from 10.0.2.2
salsal@host1:~$
'Ubuntu' 카테고리의 다른 글
VirtualBox 안에서 Ubuntu interface 이름 알아내기 (1) | 2021.07.30 |
---|---|
Macbook, Ubuntu에서 network interface 확인 (0) | 2021.07.30 |
Ubuntu 이용자 추가, sudo 권한 부여 (0) | 2021.07.29 |
Ubuntu 18.04에 Mysql 5.7.34 설치하기 (0) | 2021.07.28 |
Macbook / Virtualbox에 Ubuntu 18.04 설치 (0) | 2021.07.28 |