Ubuntu Server Rsync 작업_SSH 방식(LightSail)

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

새로 만든 Ubuntu 서버에서 Rsync를 활용해 현재 운영 중인 Alma Linux 서버의 데이터를 동기화하는 작업을 진행해 보겠습니다.

기존 LightSail의 스냅샷만 사용하기에는 웹 사이트 데이터의 실시간 복구가 힘들고, 실시간 복구가 필요한 시점이 되었다고 판단되기에 Rsync 작업을 진행하기로 했습니다. 동일한 Alma Linux보다 거의 사용하지 않았던 Ubuntu를 써 보는 것도 나쁘지 않다고 판단되어 Rsync 작업 서버는 Ubuntu에서 진행합니다.

Ubuntu Server Rsync 작업은 Alma Linux의 웹 사이트 데이터를 가져 오는 방식으로 진행합니다.

✅ Ubuntu Server Rsync 작업

Alma Linux 서버에서 SSH 설정 및 퍼미션을 설정합니다.

리모트 서버(Alma Linux)는 프롬프트가 ' ~]#' 형식으로 로컬 서버인 우분투는 프롬프트가 'ubuntu ~]#' 형식으로 표기됩니다.
-rw-------. 1 ec2-user ec2-user 397 May 31 22:37 authorized_keys
-rw-------. 1 root root 563 May 31 22:37 /root/.ssh/authorized_keys # 공개 키 위치 

 ~]# vi /etc/ssh/sshd_config

# PubkeyAuthentication yes         # 전체 계정 공개키 인증 기능 (기본값 yes) 
PermitRootLogin yes              # root 로그인 허용
AuthorizedKeysFile .ssh/authorized_keys # 공개키 위치 (기본 경로, 이미 활성화) /사용자별 홈디렉토리 참조

:wq
 ~]# systemctl restart sshd
 ~]# ll /root/ -d
dr-xr-x---. 6 root root 4096 Jun  1 00:19 /root/
 ~]# sshd -T | grep pubkeyauthentication
pubkeyauthentication yes

 ~]# chmod 700 /root # 공개키를 사용하여 퍼미션 수정 후에도 문제 없음

🔲 개인키 누락으로 인한 실행 오류

우분투 서버에서 Rsync를 실행합니다.

 ubuntu ~]# rsync --version
rsync  version 3.2.7  protocol version 31

 ubuntu ~]# rsync -avz -e ssh root@5.17.333.123:/home/ /home/backup/
root@5.17.333.123: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(232) [Receiver=3.2.7]

# 접속 오류로 SSH 접속 테스트
 ubuntu ~]# ssh -v root@17.333.123

실행 결과 연결 오류가 발생하여 리모트 서버의 로그를 확인해 봤습니다.

~]# tail -f /var/log/secure
Jun  1 00:19:54 ip-172-26-14-231 sshd[5955]: Server listening on 0.0.0.0 port 22.
Jun  1 00:19:54 ip-172-26-14-231 sshd[5955]: Server listening on :: port 22.
Jun  1 00:20:04 ip-172-26-14-231 sshd[5958]: Connection closed by authenticating user root [45.222.77.123] port 44954 [preauth]
 ubuntu ~]# ll -a .ssh/
total 16
drwx------ 2 root root 4096 May 31 14:58 ./
drwx------ 5 root root 4096 May 31 16:03 ../
-rw------- 1 root root  561 May 31 14:17 authorized_keys
-rw-r--r-- 1 root root  142 May 31 14:58 known_hosts
 ubuntu ~/.ssh]# ll
total 20
drwx------ 2 root   root   4096 May 31 16:38 ./
drwx------ 5 root   root   4096 May 31 16:38 ../
-rw------- 1 root   root    561 May 31 14:17 authorized_keys
-rw-r--r-- 1 root   root    142 May 31 14:58 known_hosts
-rw------- 1 ubuntu ubuntu 1678 May 31 16:38 private key.pem
 ubuntu ~/.ssh]# chown root.root private key.pem
 ubuntu ~/.ssh]# chmod 600 private key.pem

접속하고자 하는 우분투 root 계정에 개인키가 없어 개인키 파일을 업로드한 후에 소유권을 변경해 주었습니다.

🔲 프로토콜 오류

 ubuntu ~/.ssh]# rsync -avz -e "ssh -i /root/.ssh/private key.pem" root@5.17.333.123:/home/ /home/backup/
 
protocol version mismatch -- is your shell clean?
(see the rsync manpage for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(622) [Receiver=3.2.7]

protocol version mismatch 메시지에서 리모트 서버의 프로토콜 오류가 의심됩니다.

 ubuntu ~]# ssh -i ~/.ssh/keyfile.pem root@5.17.333.123
Please login as the user "ec2-user" rather than the user "root".

Connection to 5.17.333.123 closed.

root가 아닌 ec2-user로 로그인 해 달라는 메시지를 확인했습니다.

root 로그인을 위해 ‘Please login as the user’ 문구를 검색합니다.

 ~]# grep -R 'Please login as the user' /root /etc /home
/root/.ssh/authorized_keys:no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10;exit 142" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCK9jFZjaeN3ArgEeqxgIEwAFy+T2+WQjkmyW4gT5PL/C+5yruhxPS+T1ZuDsxSd8R+zpBxIgg1C+8c+yhZ2B2tqTgxOZYVgRAPIz95d+ZvVhdxDmXMzN8axU1pWifZp34mvxdarMyU+P2xz5QlnAZpj7rFtGFM1JXGNHuP25cj76sUJOYojzjFBYFV4JF2gzFHc+PrEAYug8lbeChx95OHlbEOspgAcFTotEaXAIA26nhlwOOcPEs55wcoVGe/RXepaSvggLNp+QGYa6HeyoE0Y70exxFQ/ZeApQTBVVPhGpNgmmHn0OzjG2phPnbf/Q6lesM3F0nKRyS0LjxedeoP keyfile
grep: /etc/httpd/run/cgisock.663: No such device or address

/root/.ssh/authorized_keys 파일에서 ssh-rsa 이하 파일만 남김니다.

 ~]# vi /root/.ssh/authorized_keys
command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10;exit 142" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCK9jFZjaeN3ArgEeqxgIEwAFy+T2+WQjkmyW4gT5PL/C+5yruhxPS+T1ZuDsxSd8R+zpBxIgg1C+8c+yhZ2B2tqTgxOZYVgRAPIz95d+ZvVhdxDmXMzN8axU1pWifZp34mvxdarMyU+P2xz5QlnAZpj7rFtGFM1JXGNHuP25cj76sUJOYojzjFBYFV4JF2gzFHc+PrEAYug8lbeChx95OHlbEOspgAcFTotEaXAIA26nhlwOOcPEs55wcoVGe/RXepaSvggLNp+QGYa6HeyoE0Y70exxFQ/ZeApQTBVVPhGpNgmmHn0OzjG2phPnbf/Q6lesM3F0nKRyS0LjxedeoP keyfile

▼
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCK9jFZjaeN3ArgEeqxgIEwAFy+T2+WQjkmyW4gT5PL/C+5yruhxPS+T1ZuDsxSd8R+zpBxIgg1C+8c+yhZ2B2tqTgxOZYVgRAPIz95d+ZvVhdxDmXMzN8axU1pWifZp34mvxdarMyU+P2xz5QlnAZpj7rFtGFM1JXGNHuP25cj76sUJOYojzjFBYFV4JF2gzFHc+PrEAYug8lbeChx95OHlbEOspgAcFTotEaXAIA26nhlwOOcPEs55wcoVGe/RXepaSvggLNp+QGYa6HeyoE0Y70exxFQ/ZeApQTBVVPhGpNgmmHn0OzjG2phPnbf/Q6lesM3F0nKRyS0LjxedeoP keyfile

문제의 원인은 AWS LightSail에서 root 접속을 제한하고 ec2-user로만 접속이 되게 끔 설정이 되어 있었기 때문입니다.

◻️ 문제 원인 정리:

1. 루트(root) 계정 직접 접속 차단

AlmaLinux 서버에서 root 계정 직접 접속을 막고, 대신 ec2-user 일반 사용자로 접속하도록 설정되어 있음.
→ authorized_keys에 command=”echo ‘Please login as the user \”ec2-user\” rather than the user \”root\”.’;sleep 10;exit 142″ 가 걸려 있었음.

2. authorized_keys에 명령어 제한(command=…) 설정 문제

이 제한 때문에 root로 접속 시 메시지만 출력되고 접속이 종료되어, rsync 등 SSH 명령이 정상 작동하지 않음.

3. SSH 키는 맞으나 권한 제한으로 접속 실패

키는 맞으나 위 제한 때문에 접속 불가 → “Permission denied” 혹은 “Please login as the user…” 메시지 발생.

해결 방법
authorized_keys에서 command=… 부분을 제거해 제한 해제 → root 계정으로 정상 SSH 접속 및 rsync 사용 가능해짐.

✅ 최종 테트

이제 우분투 서버에서 개인 키 파일을 설정해 놨으니 루트 접속도 가능하고

ubuntu ~]# ssh -i ~/.ssh/keyfile.pem root@3.5.17.333.123

Ubuntu Server Rsync 작업을 재 진행하면,

ubuntu ~]# rsync -avz -e "ssh -i /root/.ssh/keyfile.pem" root@3.5.17.333.123:/home/ 
receiving incremental file list
xxx/www/wp-content/ # 

정상적으로 실행이 됩니다.

 ubuntu ~]# rsync -avz -e "ssh -i /root/.ssh/keyfile.pem" --rsync-path="sudo rsync" ec2-user@3.5.17.333.123:/home/ /home/backup

이제 ec2-user로 실행시키는 명령으로 Ubuntu Server Rsync 작업을 진행할 수 있고 기존의 ssd 설정에서 “PermitRootLogin yes”를 비활성화 하고 ec2-user만 사용할 수도 있습니다.

✅ 자동화 설정

crontab에 등록해서 Ubuntu Server Rsync 작업 자동화를 진행합니다.

 ubuntu /usr/local/bin]# vi rsync_backup.sh
#!/bin/bash
echo "=== $(date) ==="
/usr/bin/rsync -avz -e "/usr/bin/ssh -i /root/.ssh/keyfile.pem" root@3.5.17.333.123:/home/ /home/backup
echo

:wq

 ubuntu /usr/local/bin]# chmod 700 rsync_backup.sh 

 ubuntu /usr/local/bin]# crontab -e
SHELL=/bin/bash
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
30 4 * * * /usr/local/bin/rsync_backup.sh
# 로그 확인
2025-06-01T18:22:01.321109+09:00 ip-xxx-xx-xx-163 CRON[2426]: (root) CMD (/usr/bin/rsync_backup.sh )
AWS LightSail 서버 간 작업: Ubuntu Server Rsync 작업

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 2   +   8   =