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

Как копировать файлы с помощью 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

И всё, ты закончил!