Ubuntu Server Rsync 작업_SSH 방식(LightSail)
새로 만든 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 )