[Server] Linux - rsync, SSH key

seonjeong·2023년 12월 4일

Server

목록 보기
15/15
post-thumbnail

❤️ rsync

Remote Sync의 약자로, 파일과 디렉토리를 동기화하고 전송하는 목적으로 사용되는 명령어 및 프로토콜이다.

rsync 명령어를 이용해 로컬에 있는 파일이나 디렉토리를 원격 호스트로 보내거나 원격에 있는 파일, 디렉토리를 로컬로 복사해올 수 있다.

기본 문법

rsync [옵션] [원본] [대상]                    // 기본

rsync [옵션] [원본] [접속계정@원격지주소:/경로]  // 원격지 연결

주요 옵션

  • -v : 자세한 설명 출력

  • -r : 데이터를 재귀적으로 복사(데이터를 전송하는 동안 타임스탬프와 권한을 유지 X)

  • -a : 아카이브 모드

    • 아카이브 모드는 파일을 재귀적으로 복사할 수 있으며 심볼릭 링크, 파일 권한, 사용자 및 그룹 소유권 및 타임스탬프도 보존
    • 변경사항들만 전송
  • -z : 파일 데이터 압축

  • -h : 사람이 읽을 수 있는 형식의 출력 숫자

rsync 예시

Linux에서 Rsync 명령의 10가지 실용적인 예


❤️ SSH key

SSH 프로토콜을 사용하여 안전하게 원격 시스템에 엑세스하거나 통신하기 위한 인증 수단 중 하나이다. SSH key는 특히 비밀번호 없이 안전하게 인증을 제공하는 데 사용된다.

공개키(public key)와 개인키(private key) 한 쌍으로 구성된다. → RSA 방식

  • 공개키(public key) : 누구에게나 공개 가능한 키
  • 개인키(private key) : 절대 노출되어서는 안되며, 안전하게 보관되어야 하는 키

패스워드 없이 로그인하기

1. SSH key 생성

  • ssh-keygen명령어로 SSH 키 쌍을 생성할 수 있다
  • 홈 디렉토리에서 .ssh 디렉토리가 생성된 것을 확인할 수 있다.
  • .ssh 디렉토리에는 다음과 같은 파일이 있다.
    • id_rsa : 개인키
    • id_rsa.pub : 공개키
    • authorized_keys : 해당 파일에 로그인할 클라이언트의 공개키가 기록되어 있어야 한다.

2. SSH 공개키 전송

공개키를 복사하는 명령어 ssh-copy-id를 사용한다.

ssh-copy-id [username]@[ip address]
  • -i 옵션을 사용하지 않으면 현재 로그인 되어있는 계정의 .ssh/id_rsa.pub파일을 전송한다.
  • 공개키 파일이 다른 경로에 있다면 -i 옵션을 이용하여 별도의 경로를 지정해야 한다.
  • 해당 명령어를 사용하면 authorized_keys파일에 id_rsa.pub의 내용이 저장이 된다.

3. 로그인

ssh 명령어로 로그인 할 수 있다.

ssh [username]@[ip address]

SSH 공개키 인증 과정 참고


SSH key를 이용한 rsync

rsync로 원격지에 접속하여 데이터를 동기화하기 위해서는 연결할 때마다 패스워드를 입력해야 한다. SSH 키를 이매번 패스워드를 입력하지 않고도 안전하게 연결할 수 있다.

예시

/src 디렉토리를 원격 시스템의 user@remote:/path/to/dst 디렉토리와 동기화

rsync -av -e ssh /src/ user@remote:/path/to/dst
  • -e ssh옵션은 rsync가 원격 시스템에 접속할 때 SSH를 사용하도록 지시한다. (기본값이므로 생략 가능)

How to use rsync over ssh 참고


RSA

  • 암호화 및 복호화하는 공개키 암호 알고리즘
  • 소인수분해를 이용한 암호화 방식
  • 비대칭키 암호화
    • 2개의 키를 이용
    • 하나는 열기만, 하나는 잠그기만 가능하다

예제로 이해하기

  • 예제 : A가 B에게 편지를 보내야 하는 상황에서 어떻게 하면 안전하게 전달할 수 있을까?

    1. 공개키 전달 : B가 A에게 자물쇠와 키를 하나 준다. (잠그기만 할 수 있는 키)

    2. 암호화 : A는 편지를 자물쇠에 넣고 B에게 받은 키로 잠근다.

    3. 전송 : 자물쇠로 잠근 편지를 B에게 보낸다.

    4. 복호화 : 열 수 있는 키는 오직 B만이 가지고 있기 때문에 B가 아닌 다른사람이 열 수 없다.

[보안/암호] RSA 암호화 복호화 (공개키 암호 시스템) 참고



Reference

생활코딩-리눅스 강좌

profile
🦋개발 공부 기록🦋

0개의 댓글