4 min read

비밀번호 없이 ssh 접속하기

비밀번호 없이 ssh 접속하기
Photo by Kristina Flour / Unsplash

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나 자동 스크립트를 할때는 제약조건이 되어 돌아온다.

잘 만들어 졌는지 확인해 보자.

💡
반드시 들어가고자 하는 계정에 생성이 된다!!! root 인지 ubuntu 인지 에 따라 다르다!
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)을 열 수 있는 식이다.

Photo by Towfiqu barbhuiya / Unsplash


열쇠만 있으면 같은 열쇠뭉치에 접속이 가능하다.

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를 비공개 키라고 하는 이유가 공개키(키뭉치) 는 가져가도 집에 못들어 가지만 키를 잃어버리면 얼마든지 복사해서 가지고 갈 수 있는것과 같은 원리라고 보면 된다.