본문 바로가기
프로그래밍/OS

서버 간 User Password 없이 SSH 접속

by 남생 namsaeng 2022. 4. 20.
반응형

*공개키 암호화 방식

  • 로컬 서버가 자신만 알고 있는 기밀을 원격 서버에게 전달하고자 할 때 사용하며, 원격 서버를 제외한 다른 호스트는 이 내용을 알 수 없어야 한다.

 

*기밀 내용 전달과정

  • 1) 원격 서버가 자신의 공개키를 공개한다.
  • 2) 로컬 서버는 이 공개키로 문서를 암호화 한다.
  • 3) 암호화된 문서를 원격 서버에게 전달한다.
  • 4) 원격 서버는 자신만이 가진 개인키로 이 문서를 해독한다.
  • 중요: 개인키가 유출될 경우에 다른 호스트에서 로컬 서버가 원격 서버로 보내는 기밀을 스니핑해서 해독할 수 있다. 따라서 개인키를 암호로 보호하는 것이 좋다. 

 

 

* SSH 접속 실험 환경

  • 로컬 서버 : Windows 10
  • 원격 서버 : RHEL 8

 

1. 로컬 서버에서 RSA 알고리즘을 사용하여 개인키-공개키 쌍 생성

  • 많은 원격 호스트는 기본적으로 파일 이름과 경로(RSA 키의 경우에는 ~/.ssh/id_rsa)를 사용하도록 구성되어 있기 때문에, 파일 이름이나 위치가 다르면 ~/.ssh/config 파일을 구성해야 한다.
C:\Users\SIU> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\SIU/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): hiroo
Enter same passphrase again: hiroo
Your identification has been saved in C:\Users\SIU/.ssh/id_rsa.
Your public key has been saved in C:\Users\SIU/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:f91ZIvMLr+7N+Q69BUre5ZClMIep/Y49Rn/vvGFLRzY siu@DESKTOP-6RP6BC0
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|             o   |
|            = . .|
|           o + + |
|        S . = *E=|
|         . o O.@+|
|          . =.***|
|           . O==O|
|           o=oOOX|
+----[SHA256]-----+

 


2. 원격 서버 접속 후 공개키 파일 복사

C:\Users\SIU>scp C:/Users/SIU/.ssh/id_rsa.pub namsaenga@192.168.1.2:/home/namsaenga
namsaenga@192.168.1.2's password:
id_rsa.pub                                                                           
 100%  402     0.4KB/s   00:00



3. 원격 서버에서 공개키 내용을 `~/.ssh/authorized_keys`에 복사

[namsaenga@localhost ~]$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
[namsaenga@localhost ~]$ rm id_rsa.pub

 

 

3-1. ~/.ssh/authorized_keys: No such file or directory 해결방법

[namsaenga@localhost ~]$ mkdir ~/.ssh
[namsaenga@localhost ~]$ chmod 700 ~/.ssh
[namsaenga@localhost ~]$ touch ~/.ssh/authorized_keys
[namsaenga@localhost ~]$ chmod 600 ~/.ssh/authorized_keys

 

 

4. 로컬 서버에서 원격 서버 접속

C:\Users\SIU\.ssh>ssh namsaenga@192.168.1.2
Enter passphrase for key 'C:\Users\SIU/.ssh/id_rsa': hiroo
Web console: https://localhost:9090/

Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Wed Apr 20 15:56:42 2022 from 192.168.1.1

 


4-1) C:\Users\SIU\.ssh\config 환경설정 파일 구성

Host NAMSAENG
HostName 192.168.1.2
User namsaenga
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa



4-2) config 파일을 이용하여 원격 서버 접속

C:\Users\SIU\.ssh>ssh NAMSAENG
Enter passphrase for key 'C:\Users\SIU/.ssh/id_rsa': hiroo
Web console: https://localhost:9090/

Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Wed Apr 20 15:59:59 2022 from 192.168.1.1



5. 개인키 암호 없이 원격 접속

  • 개인키-공개키 쌍 생성 시에 "Enter passphrase (empty for no passphrase)"에서 암호를 입력하지 않고­ Enter
  • 중요: 개인키를 암호로 보호하지 않으면 컴퓨터에 액세스 할 수 있는 모든 사람이 해당 공개키가 있는 원격 시스템의 계정에 암호 없이 SSH 접속 가능
C:\Users\SIU>ssh namsaenga@192.168.1.2
Web console: https://localhost:9090/ 
Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Wed Apr 20 16:04:40 2022 from 192.168.1.1




반응형

댓글