[컴] 파일동기화, login 없이 rsync 사용하기

 

synchronize / file synch / without login

파일동기화, login 없이 rsync 사용하기

  • rsync_test.zip
  • compose.yml
  • entorypoint.sh : 단지, sshd 서버를 띄우기 위함.
#
# compose.yml
#
version: '3.8'

services:
  node1:
    container_name: node1
    build: .
    image: alpine:3.14-rsync
    volumes:
      - ./data1:/data_sync
    networks:
      - rsync-network
    ports:
      - "7795:22"
    restart: always
    entrypoint: [ "/entrypoint.sh" ]
  node2:
    container_name: node2
    build: .
    image: alpine:3.14-rsync
    volumes:
      - ./data2:/data_sync
    networks:
      - rsync-network
    ports:
      - "7796:22"
    restart: always
    entrypoint: [ "/entrypoint.sh" ]
  node3:
    container_name: node3
    build: .
    image: alpine:3.14-rsync
    volumes:
      - ./data3:/data_sync
    networks:
      - rsync-network
    ports:
      - "7797:22"
    restart: always
    entrypoint: [ "/entrypoint.sh" ]
networks:
  rsync-network:
    driver: bridge
#
# Dockerfile
#
FROM alpine:3.14


RUN apk add rsync
RUN apk add --update --no-cache openssh

RUN addgroup -g 1000 rsync
RUN adduser -D -G rsync rsync
# in centos
# RUN groupadd -g 1000 rsync
# RUN adduser -g rsync rsync
RUN echo -n 'rsync:my_password' | chpasswd

COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh 
#!/bin/sh
#
# entrypoint.sh
#
ssh-keygen -A
exec /usr/sbin/sshd -D -e "$@"

login 을 안해도 되도록 만들기

여기서 rsync 를 하려는 remote 의 주소를 112.123.23.0 라고 하자.

  • 먼저 rsync 로 접근하려는 remote 에 가서 계정을 만들고 비번을 걸어놓자.
  • local 에서 작업
    • ssh-keygen : password 넣으라고 나오면 그냥 enter 를 친다.
    • ssh-copy-id -i ~/.ssh/id_rsa.pub 112.123.23.0 : 112.123.23.0 에 public key 를 copy 해 준다. 이때 내 현재 계정이 rsync 라면 rsync 로 112.123.23.0에 접속하게 된다. 이 때 비밀번호를 물어보게 된다. 인증이 잘되면, pub key 가 옮겨진다.
    • ssh 112.123.23.0 를 하면 접근이 되는 것을 알 수 있다.
    • 참고로, 다른 계정에서 rsync@112.123.23.0 -i /home/rsync/.ssh/id_rsa 으로 하면 그냥 접근이 된다. 그래서 id_rsa 의 권한은 항상 600으로 하자.(기본으로 되어 있다.)
  • rsync -rv rsync@node1:/data_sync / : node1의 data_sync 폴더 전부를 local 의 ‘/’ 로 옮겨준다. 그래서 ’/’에 data_sync 가 생긴다.
# su - rsync
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
...
# ssh-copy-id -i ~/.ssh/id_rsa.pub node1
...
# rsync -rv rsync@node1:/data_sync /

See Also

  1. 쿠…sal: [컴] rsync 정리
  2. 쿠...sal: [컴] docker centos 8 에서 /run/nologin : centos image로 테스트하면 login 이 안되는 이슈가 있을 수 있다. 그것과 관련된 내용이다.

Reference

  1. How To Use Rsync Without Password

댓글 없음:

댓글 쓰기