비밀번호 없이 ssh 접속하기
putty gen으로 하는 방법과 keygen으로 하는 방법이 있는데 2번째 방법
ubuntu@blue:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:dvar9K/LpUa1v/yQF+QNCsKyLwj9RIHx84lJ4Iw52Ug ubuntu@blue
The key's randomart image is:
+---[RSA 3072]----+
| E oo. |
| . O.o o |
| * + * o . .. |
| o o B o . .+..|
| . . = S o .. +.|
| . + o o .. ...|
| . o . ... +..|
| . . o.+.o.|
| .oB+.o+|
+----[SHA256]-----+
ubuntu@blue:~/.ssh$
어디에 저장할지, 암호를 넣을건지 물어보는데 암호 안넣을려고 하는건데...물론 암호를 넣으면 보안은 좋아지지만 나중에 rsync나 자동 스크립트를 할때는 제약조건이 되어 돌아온다.
잘 만들어 졌는지 확인해 보자.
ubuntu@blue:~/.ssh$ cd ~/.ssh/
ubuntu@blue:~/.ssh$ ll
total 16
drwx------ 2 ubuntu ubuntu 4096 Jul 14 15:19 ./
drwxr-x--- 5 ubuntu ubuntu 4096 Jul 14 15:19 ../
-rw------- 1 ubuntu ubuntu 2602 Jul 14 15:14 id_rsa
-rw-r--r-- 1 ubuntu ubuntu 565 Jul 14 15:17 id_rsa.pub
ubuntu@blue:~/.ssh$
id_rsa 와 id_rsa.pub 라는 파일이 2개가 만들어 졌다. 비공개키와 공개 키라는 개념인데 간단하게 얘기하면

이렇다.
비유하면 열쇠와 자물쇠로 비유할 수 있는데 id_rsa가 키, id_rsa.pub가 자물쇠나 열쇠뭉치로 비유할 수 있겠다. 여러개의 자물쇠(id_rsa.pub)를 각 사물함(host)에 설치하고 열쇠(id_rsa)만 있으면 여러 사물함(host)을 열 수 있는 식이다.

열쇠만 있으면 같은 열쇠뭉치에 접속이 가능하다.
authorized_keys=id_rsa.pub 값이 같은데
내 컴퓨터 의 ~/.ssh/id_rsa
원격서버의 ~/.ssh/ 가 매칭이 되면 인증서 만으로 접속이 가능하다
아까 계정에 만들어 진다는걸 감안하면 특정 계정별로 관리가 또 가능하다는 말이다.
ubuntu@blue:~/.ssh$ cat id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmU**생략~**
eudS1aKI4IV6NK0vREXJc/4i/rTet1GUDC/sDW/
a11kDRu/723rspAAAAC3VidW50dUBibHVlAQIDBAUGBw==
-----END OPENSSH PRIVATE KEY-----
ubuntu@blue:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAA
**생략~**
9HoYAhCqhBe4Q6TRsgrbNK9zSmXGeVtofZiL13/2Yt2mas= ubuntu@blue
ubuntu@blue:~/.ssh$
이렇게 나온다 그러면 id_rsa 값을 복사해서 내 컴퓨터의 "사용자경로/.ssh/id_rsa에 넣고 (known_hosts는 접속하면 자동생성되는것이다)
[맥은 터미널에서 open ~/.ssh로 하면 열린다.]

접속하면

이렇게 접속이 된다.
물론 putty gen으로 하면 훨씬 편하다.
ppk를 만들고 authorized_keys에 공개 키만 넣으면 끝이다.
그래서 OCI로 공개키만 넣어주면 ssh터미널로 접속이 가능한 것이다.
이러식으로 client- 서버 뿐만 아니라 서버-서버 간에도 가능하다.
client가 되는 서버의 ~/.ssh 디렉토리에 kwon_hosts를 생성하기만 하면 접속이 가능한것이다.
그렇기에 id_rsa를 비공개 키라고 하는 이유가 공개키(키뭉치) 는 가져가도 집에 못들어 가지만 키를 잃어버리면 얼마든지 복사해서 가지고 갈 수 있는것과 같은 원리라고 보면 된다.