Поиск по сайту:

Как копировать файлы с помощью 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-ключ в ваш файл ~/.ssh/authorized_keys:

Если вашей папки SSH не существует, создайте ее вручную:

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys

Шаг 3 - Rsync файлы завершены

Rsync — отличная утилита, так как она позволяет, среди прочего, рекурсивно копировать файлы со сжатием и по зашифрованному каналу.

Мы скопируем файл с исходного сервера (198.211.117.101) в /root/bigfile.txt на наш целевой сервер (IP: 198.211.117.129) и также сохраним его в /root/bigfile.txt.

Войдите на 198.211.117.101 и выполните rsync файл на 198.211.117.129:

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 молчал и не запрашивал каждый раз, когда вы подключаетесь к новому серверу.

Убедитесь, что вы получили файл на целевом сервере (198.211.117.129):

ls -la /root/bigfile.txt

И все готово!