Secure Shell (SSH) - это универсальный протокол, обеспечивающий безопасный доступ к удаленным компьютерам. С помощью утилиты scp вы можете эффективно передавать файлы между удаленными системами, используя синтаксис, аналогичный команде cp.
Кроме того, SSH может использоваться другими приложениями для передачи файлов, такими как sftp и rsync, для обеспечения безопасной передачи.
Примеры следующих методов передачи файлов основаны на описанной выше настройке.
Убедитесь, что у вас есть SSH-доступ к удаленному серверу с соответствующими правами на удаленные файлы и папки.
Передача файла с помощью scp
scp (secure copy) - это самый простой метод удаленной передачи файлов. Он требует SSH-доступа к удаленному серверу и работает подобно команде cp, но для удаленной передачи. При использовании scp вы должны указать DNS-имя или IP-адрес удаленного узла и предоставить учетные данные для входа в систему. Вы можете использовать scp для передачи данных с локального на удаленный и с удаленного на локальный.
Скопируйте один файл с локального на удаленный с помощью scp.
1 | scp myfile.txt remoteuser@remoteserver:/remote/folder/ |
Если целевая папка (/remote/folder/) не указана, то файл будет скопирован в домашний каталог удаленного пользователя.
Передача одного файла с удаленного сервера на локальный с помощью scp.
1 | scp remoteuser@remoteserver:/remote/folder/remotefile.txt localfile.txt |
Использование . в качестве цели копирования (вместо localfile.txt) приведет к копированию удаленного файла в текущий рабочий каталог с тем же именем (remotefile.txt).
Копирование нескольких файлов с локального на удаленный с помощью scp.
1 | scp myfile.txt myfile2.txt remoteuser@remoteserver:/remote/folder/ |
Скопировать все файлы с локального на удаленный с помощью scp.
1 | scp * remoteuser@remoteserver:/remote/folder/ |
Рекурсивно скопируйте файлы и папки с локального компьютера на удаленный с помощью scp.
1 | scp -r * remoteuser@remoteserver:/remote/folder/ |
remoteuser должен существовать и иметь права на запись в /remote/folder/ в удаленной системе.
Программы с графическим интерфейсом, такие как WinSCP, также могут быть использованы для передачи файлов между локальным и удаленным хостом с помощью методов scp.
Передача файлов с помощью sftp
Безопасный FTP (sftp) функционирует аналогично FTP, но с защищенным соединением. Большинство команд взаимозаменяемы между собой. Следующие примеры sftp демонстрируют сходство со стандартными командами FTP:
1 2 3 4 5 6 7 8 9 10 11 | sftp user@192.168.1.10 Connected to 192.168.1.10. sftp> dir file1 file2 file3 sftp> pwd Remote working directory: /home/user sftp> get file2 Fetching /home/user/file2 to file2 /home/user/file2 100% 374KB 747.9KB/s 00:05 sftp> bye $ |
WinSCP также может использоваться для передачи файлов по протоколу SFTP, но с графическим интерфейсом. Другой популярный инструмент - FileZilla.
Передача файлов с помощью rsync
Чтобы защитить сеансы rsync с помощью SSH, используйте --rsh=ssh или -e ssh наряду с обычными командами rsync. Две приведенные ниже команды дают одинаковые результаты:
1 2 | rsync -av --delete --rsh=ssh /path/to/source remoteuser@192.168.1.10:/remote/folder/ rsync -av --delete -e "ssh" /path/to/source remoteuser@192.168.1.10:/remote/folder/ |
Если эти параметры не указаны, rsync сначала попытается подключиться к rsyncd. Если rsyncd не запущен на удаленной системе, он автоматически вернется к SSH.
Локальное монтирование удаленной файловой системы
Вы можете монтировать удаленные файловые системы на локальном хосте и получать к ним доступ, как к локальным. Для этого вам понадобится SSH-доступ к удаленному хосту и утилита sshfs.