Как копировать файлы с помощью 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И всё, ты закончил!
