1) ssh public private key → 공개키 통해 로그인 없이 로그인하기

ssh [사용자 계정]@[IP 주소] # 다른 컴퓨터에 ssh 활용하여 접속하는 방법

<aside> ✅ ***## 전체적인 과정 (흐름) ##

  1. ssh-keygen (public key, private key 생성) ⇒ /home/[계정]/.ssh에 생성
  2. ssh-copy-id [로그인하고자 하는 PC]@[IP 주소]

(public key, private key 보유한) A 컴퓨터가 B 컴퓨터에 로그인하는 것을 허용한다는 의미 → B 컴퓨터의 authorized_key 파일 뒤에 “공개키” 추가

  1. ssh [로그인하고자 하는 PC]@[IP 주소] >> 비밀번호 입력 없이 접속 가능***

</aside>

ssh-keygen # 키를 생성하는 명령어

nojeans@xudegloss:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nojeans/.ssh/id_rsa):
## 비공개, 즉 숨겨진 ssh 디렉토리 안에 존재하는 id_rsa 파일에 해당 키 보관

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/nojeans/.ssh/id_rsa
Your public key has been saved in /home/nojeans/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/DEQZz6Zl4ErLOjFmI51+16nWx0IiyJ+1H3MJxHY2U8 nojeans@xudegloss
The key's randomart image is:
+---[RSA 3072]----+
|        . o+oo   |
|         =ooo+. E|
|     = .. *.+  o |
|    = =oo+.B o  .|
|   =.oooS.= * o  |
|  ..oo.. . + + . |
|    . ..  o o .  |
|     .  .. +     |
|       .. o.     |
+----[SHA256]-----+

nojeans@xudegloss:~$ cd ~
nojeans@xudegloss:~$ ls
hi-machine.sh  perm
nojeans@xudegloss:~$ ls -al
total 104
drwxr-x--- 6 nojeans nojeans  4096 Apr 17 00:15 .
drwxr-xr-x 4 root    root     4096 Apr 12 00:04 ..
-rw------- 1 nojeans nojeans   171 Apr 16 22:49 .Xauthority
-rw------- 1 nojeans nojeans  1826 Apr 12 00:50 .bash_history
-rw-r--r-- 1 nojeans nojeans   220 Jan  7  2022 .bash_logout
-rw-r--r-- 1 nojeans nojeans  3771 Jan  7  2022 .bashrc
drwx------ 2 nojeans nojeans  4096 Mar 13 23:57 .cache
-rw------- 1 nojeans nojeans    42 Mar 29 00:48 .lesshst
drwxrwxr-x 3 nojeans nojeans  4096 Mar 28 00:44 .local
-rw-r--r-- 1 nojeans nojeans   807 Jan  7  2022 .profile
drwx------ 2 nojeans nojeans  4096 Apr 17 00:24 .ssh
-rw-r--r-- 1 nojeans nojeans     0 Mar 14 00:01 .sudo_as_admin_successful
-rw------- 1 nojeans nojeans  2290 Apr 12 00:15 .viminfo
-rw-rw-r-- 1 nojeans nojeans 49076 Mar 28 00:11 .zcompdump
-rw-rw-r-- 1 nojeans nojeans    31 Apr 12 00:13 hi-machine.sh
drwxrwx--x 2 nojeans nojeans  4096 Apr 12 00:24 perm

nojeans@xudegloss:~$ cd .ssh

nojeans@xudegloss:~/.ssh$ ls -al
total 16
drwx------ 2 nojeans nojeans 4096 Apr 17 00:24 . # 현재 디렉토리 권한
drwxr-x--- 6 nojeans nojeans 4096 Apr 17 00:15 ..
-rw------- 1 nojeans nojeans    0 Mar 13 23:57 authorized_keys
**-rw------- 1 nojeans nojeans 2602 Apr 17 00:24 id_rsa ## ssh private key (비밀키)
-rw-r--r-- 1 nojeans nojeans  571 Apr 17 00:24 id_rsa.pub ## ssh public key (공개키)

>> 비밀키는 권한이 굉장히 엄격 (only 소유자)
>> 현재 디렉토리 권한은 소유자만 읽고, 쓰고, 실행 가능 (즉 nojeans 사용자가 아닌 경우,
.ssh 디렉토리에 아예 접근 불가)**

nojeans@xudegloss:~/.ssh$ cat id_rsa.pub # 공개키
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCSES5P2e2RaMWi07HP3GCSeMBegPsLeAPJHUMTJiUbpZH7Xw
EMEoYrb/Ib4CirQ5XWuq5FOZZo9LvqFAvtx1vYRcZt7LQU1AIp/1Zw3VzmvQP+/U+HNgHFtShZ1M7EG6GukAWJNs
GuZJNJiDjhDdDYhAMhW+bPM/8gCP0wg2E/Yjn9zERCpW+MQ54/QM3wTkb0w6f+1sa1RW7kG+cLvoPmqDnebCH0j
YutPzkhq61RIBWC4g4wTiYeM9B1jBg+RIy2EupvU1RPkqUOp7/7KTMr7+zmoepUdQHIxPSdBI6JPka1NGeCmGqf9
byKaU/06BQb4Dg7VEZVMDmDa7nT//Nf0XcZuoXU1mS7naYzgFxMerNRl/K2HnRqC7aRaejV6FsXYQskQCU8wpI81
Ggo/2Vgv8cFCsas1vhgBUEU9H3Z0lUA1iO22LqrPe5D4SdLN9aaWFUR0Guz8vDZ8SS7Ib5qMR8nk49TV/atB1Y2g
/rFN/U1F+ouWAyUxmcQnY7FtyU= nojeans@xudegloss
## 로그인하고자 하는 PC ##

drwx------ 2 nojeans nojeans 4096 Apr 17 00:24 .
drwxr-x--- 6 nojeans nojeans 4096 Apr 17 00:15 ..
-rw------- 1 nojeans nojeans    0 Mar 13 23:57 authorized_keys

>> authorized_keys 바로 뒤에 (접속하고자 하는 PC의) "공개키" 추가 진행

**## 공개키, 비밀키 생성한 PC에서 다른 단말에 로그인하기 위하여 공개키 추가하는 작업 ##**

ssh-copy-id [로그인하고자 하는 PC]@[IP 주소]

>> 그 후에 로그인하고자 하는 PC에서 "키" 확인 시 추가된 것을 확인 가능
>> **즉, A 단말의 공개키가 B 단말의 공개키에 추가**

ssh [사용자 계정]@[IP 주소] >> 비밀번호 입력 없이 바로 접속 가능

2) rsync

<aside> ✅ 1) 한 서버 내에서 directory ~ directory 간 동기화 진행하는 경우 2) 서버 ~ 서버 간 동기화 진행하는 경우 예를 들면, 이중화된 서버에서 Backup 시 유용 혹은 Cron와 같이 자동으로 주기 별 명령 실행하는 경우 활용 가능 (효율적 → 변경되는 부분만 백업)

</aside>

## Server 1 ##

mkdir rsync3
touch test{1..100} # 100개의 빈 파일 생성
rsync -avz . [email protected]:~/rsync_welcome # 현재 위치에 있는 모든 파일을
# 192.168.0.67 아이피를 가진 계정이 egoing인 rsync_welcome 디렉토리에 동기화

# v : 모두 출력
# a : 자동적으로 효율적이게 동기화 진행 (예를 들면 수정된 곳만 동기화 진행 등)
# z : 압축하여 동기화
## Server 2 ##

계정 : egoing IP : 192.168.0.67


mkdir rsync_welcome
## 로그인 없이 바로 동기화 된 것을 확인할 수 있다!!!