생활코딩 리눅스 요약 : 30 - 인터넷을 통한 서버간 동기화 (rsync) ~ 33 - 연속적으로 명령 실행시키기 (;과 &와 &&의 차이)

Jeongtae Kim·2022년 7월 29일
0

서버

목록 보기
6/6
post-thumbnail

📒 생활코딩 리눅스 수업 소개

생활코딩의 운영자 이고잉 님이 2016년부터 2017년까지 만드신 리눅스 초보 수업으로 리눅스 뿐만 아니라 네트워크와 인터넷 등도 수업에 포함되어 있습니다. 이 글의 요약을 보는 것보다 동영상 수업을 듣는 것을 강력 추천합니다! 또한, 이고잉님이 작성하신 글들에 동영상의 추가 정보들을 더 적어 놓았습니다.
생활코딩 리눅스

📌 30 - 인터넷을 통한 서버간 동기화 (rsync)

인터넷을 통한 서버간 동기화 (rsync) 수업
Rsync는 Remote + Sync로 컴퓨터 시스템 상에서 파일을 효율적으로 전송하고 동기화하기 위한 유틸리티입니다.

준비

mkdir rsync
cd rsync
mkdir src
mkdir dest
cd src
touch test{1..10}
cd ..

현재 rsync 디렉토리 안에 src와 dest 디렉토리를 만들었습니다. src 디렉토리 안에는 test1, test2, test3 ... test10까지 파일을 생성했습니다. {1..10}은 1부터 10까지를 나타냅니다.

실습

rsync (옵션) 원본위치 동기화위치 : 원본 위치의 파일들을 동기화 위치로 동기화합니다.

-a 옵션으로 아카이브 모드(모든 디렉토리, 파일들을 변경 사항만 속성들과 같이 전송하는 모드)로 실행할 수 있고 -v 옵션으로 실행 과정을 자세하게 볼 수 있습니다. dest 디렉토리로 가서 동기화 되었는지 보겠습니다.

동기화가 잘 되었습니다. rsync는 컴퓨터와 컴퓨터 혹은 계정과 계정 사이 동기화도 가능합니다.

rsync -azP ~/rsync/src/ 유저이름@IP주소:~/rsync/dest

-z 옵션으로 압축할 수 있고, -P 옵션으로 전송 과정을 다음과 같이 프로그레스 바로 보여줄 수 있습니다.

'dave' 계정에서 dest 디렉토리까지 만들고 'kjt' 계정에서 명령어를 실행했습니다.

컴퓨터와 컴퓨터 혹은 계정과 계정 사이 동기화를 성공했습니다.

📌 31 - 로그인 없이 로그인 하기 (ssh key)

로그인 없이 로그인 하기 (ssh key) 수업
ssh로 로그인을 할 때 비밀번호를 입력하지 않지만 더 보안적으로 로그인하는 방법을 알아봅시다!

ssh-keygen

랜덤하게 형성된 강력한 비밀키를 지정 경로로 생성됩니다(모든 칸을 비워놔도 됩니다).

이 명령을 입력한 후 홈 디렉토리에 .ssh 디렉토리가 있을 것입니다. cd로 들어간 후 id_rsa, id_rsa.pub 폴더가 있을 것입니다.

id_rsa : private key로 소유자만 알고 있어야 하는 key가 담겨 있습니다. 절대로 다른 사람에게 노출시키면 안 됩니다.
id_rsa.pub : public key로 소유자 이외에 다른 사람도 알고 있어도 되는 key가 담겨 있습니다.

그 중 공개키(public key)를 다른 사용자의 authorized_keys라는 파일에 복사하는 명령어를 사용하겠습니다.

ssh-copy-id 유저이름@IP주소

이제 다른 사용자로 가서 cd로 .ssh 폴더로 이동하면 authorized_keys가 있습니다. 그 파일을 cat으로 확인하면 key가 추가된 것을 알 수 있습니다.

이제 ssh 클라이언트가 로그인을 할 때 비밀번호를 치지 않아도 됩니다. 대신에 복잡하고 보안적인 key를 사용하기 때문에 보안성은 올라갑니다.

이는 rsync에서도 활용할 수 있습니다. cron을 이용해 rsync를 주기적으로 할 때 항상 로그인을 해줘야 해서 자동화가 불가능합니다. 하지만 ssh key를 이용하면 로그인 없이 rsnyc가 되기 때문에 자동화가 가능해집니다.

이것이 가능한 원리는 무엇일까요?

먼저, 정보를 key를 이용해 복잡한 암호로 만드는 것을 암호화(encrypt)라고 하고, 복잡한 암호를 key를 이용해 다시 정보로 만드는 것을 복호화(decrypt)라고 합니다.
여기서 같은 key를 이용해서 암호화와 복호화를 하는 대칭 암호화 방식이 있고,
공개키로 암호화하고 개인키로 복호화하는 비대칭 암호화 방식이 있습니다.

여기서는 비대칭 암호화 방식 중 하나인 RSA 방식을 이용하여 자동으로 로그인이 되게 합니다. 그 과정을 순서대로 보겠습니다.

  1. 클라이언트가 서버에 접속하면 서버는 클라이언트에 랜덤하게 생성한 키를 주게 됩니다.
  2. 클라이언트는 id_rsa(개인키)가 있으면 서버가 전송한 랜덤키를 개인키로 암호화하여 서버에 다시 전송합니다.
  3. 서버는 암호화 된 문자를 공개키로 복호화하여 처음에 자기가 보냈던 값과 같다면 로그인을 하게 해줍니다.

📌 32 - 수업을 마치며

수업을 마치며 수업(?)
이고잉님의 글입니다. 링크를 통해 읽어주세요!

📌 33 - 연속적으로 명령 실행시키기 (;과 &와 &&의 차이)

연속적으로 명령 실행시키기 (;과 &와 &&의 차이) 수업
이고잉님의 글입니다. 링크를 통해 읽어주세요!

  • 추가
    - '||' : 앞의 명령어가 성공했을 때 다음 명령어가 실행되지 않습니다.
    - 명령어를 실행 후 'echo $?'를 했을 때 0이 아닌 값이 나오면 실패한 것입니다.

끝입니다! 제가 부족해서 잘 요약했는지는 모르겠지만 어떤 사람에게는 도움이 되었으면 합니다. 감사합니다.

profile
유용할지도 모른다.

0개의 댓글