
해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다.
rsync
rsync는 remote sync의 줄임말로 네트워크를 통해 파일을 동기화하기 위한 리눅스 유틸리티이다.
rsync 라는 디렉토리에 source 디렉토리(src), destination 디렉토리(dest)가 있고 src 디렉토리를 dest 디렉토리에 동기화시키고 싶은 상황이라고 하자.


이때 rsync -a src dest와 rsync -a src/ dest의 차이점은 전자는 src 디렉토리를 dest 안에 동기화시키는 것이고 후자는 src 디렉토리 밑에 있는 모든 파일을 dest에 동기화시키는 것이다.

rsync의 또다른 장점은 증분을 한다는 것으로, 동기화를 시킬때 모든 파일에 대해서 하지 않고 변경이 된 파일에 대해서만 하기 때문에 효율적이다.
Remote sync
rsync에서 ip 주소를 통해 네트워크간 동기화를 할 수 있다. z option은 압축을 해서 전송하는 옵션이고, P 디렉토리는 progress bar를 보여주는 옵션이다.


ssh key
ssh key를 통해 아이디, 패스워드 없이 로그인할 수 있다. 아래는 일반적으로 아이디, 패스워드를 가지고 로그인하는 예시이다.

ssh-keygen 명령어를 통해 ssh 공개키/비공개키를 만들 수 있다. 그 결과로 id_rsa, id_rsa.pub 2가지 파일이 생성되었다. id_rsa 파일은 외부에 노출되서는 안되는 비공개키 파일이고, id_rsa.pub 파일은 외부에 노출이 되어도 괜찮은 공개키 파일이다. id_rsa 파일은 파일의 소유자만 read, write 권한이 있음을 볼 수 있는 반면 id_rsa.pub 파일은 누구든지 읽을 수 있다. 내가 로그인하고 싶은 원격 컴퓨터 authorized_keys 파일에 공개키를 등록하면 끝이다.
이렇게 ssh key를 통해 자동으로 로그인이 되도록하면 cron과 같은 도구를 이용해 서버의 작업을 자동화할 수 있다는 장점이 있다.
동작 원리
ssh client와 ssh server 두 개의 프로그램이 동작하는 원리를 살펴보려고 한다. 클라이언트에는 private key, public key 파일 두 가지가 있고 서버에는 public key가 있다. 전자는 암호화, 후자는 복호화에 사용된다.
- 클라이언트가 서버에 접속 시도
- 서버가 클라이언트에게 random key 전달
- 클라이언트는 private key 파일을 통해 서버가 준 random key를 암호화해서 서버에게 전달
- 서버는 public key 파일을 통해 복호화, 2번에서 준 key와 비교
- 일치한다면 클라이언트가 public key를 생성한 주체임을 확신, 로그인 허용
'LINUX > 생활코딩 강의 정리' 카테고리의 다른 글
| [생활코딩 리눅스 강의 정리] 섹션 10. 도메인 (0) | 2022.08.27 |
|---|---|
| [생활코딩 리눅스 강의 정리] 섹션 9. 인터넷, 네트워크 그리고 서버 (0) | 2022.08.26 |
| [생활코딩 리눅스 강의 정리] 섹션 7. 권한 ~ 섹션 8. 그룹 (2) | 2022.08.25 |
| [생활코딩 리눅스 강의 정리] 섹션 6. 사용자 (0) | 2022.08.24 |
| [생활코딩 리눅스 강의 정리] 섹션 5. 프로세스와 실행 (0) | 2022.08.24 |