Как копировать файлы при помощи Rsync через SSH
1 . Установка публичных ключей SSH
Для начала нужно сгенерировать открытые ключи SSH без пароля на первоначальном сервере:
ssh-keygen -f ~/.ssh/id_rsa -q -P ""
cat ~/.ssh/id_rsa.pub
Это открытый SSH-ключ, который можно разместить на других хостах, чтоб получить доступ:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLVDBIpdpfePg/a6h8au1HTKPPrg8wuTrjdh0QFVPpTI4KHctf6/FGg1NOgM++hrDlbrDVStKn/b3Mu65//tuvY5SG9sR4vrINCSQF++a+YRTGU6Sn4ltKpyj3usHERvBndtFXoDxsYKRCtPfgm1BGTBpoSl2A7lrwnmVSg+u11FOa1xSZ393aaBFDSeX8GlJf1SojWYIAbE25Xe3z5L232vZ5acC2PJkvKctzvUttJCP91gbNe5FSwDolE44diYbNYqEtvq2Jt8x45YzgFSVKf6ffnPwnUDwhtvc2f317TKx9l2Eq4aWqXTOMiPFA5ZRM/CF0IJCqeXG6s+qVfRjB root@cloudads
Скопируйте данный ключ в буфер обмена и подключитесь к серверу назначения.
Поместите этот ключ в файл ~/.ssh/authorized_keys:
Если папки SSH не существует, создайте ее вручную:
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
2. Файлы Rsync
Rsync – очень полезная утилита, так как она, помимо всего прочего, позволяет пользователю рекурсивно копировать файлы по зашифрованному каналу с применением сжатия.
Скопируем файл, находящийся в /root/bigfile.txt на первоначальном сервере (198.211.117.101), на сервер назначения (IP: 198.211.117.129) и также сохраним его в /root/bigfile.txt.
Войдите на исходный сервер и, применив утилиту rsync на указанный файл, скопируйте его на сервер назначения:
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/bigfile.txt 198.211.117.129:/root/
Если вы работаете с другого пользователя, например, с «username», нужно добавить его перед сервером назначения. Убедитесь, что открытый ключ помещен в файле ~/.ssh/authorized_keys данного пользователя:
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/bigfile.txt username@198.211.117.129:/
Параметры SSH помогут сдерживать Rsync, а также избежать Rsync-указаний при каждом подключении к новому серверу.
Убедитесь, что файл был скопирован на целевой сервер (198.211.117.129):
ls -la /root/bigfile.txt
Готово!
Tags: Rsync, SSH