Копирование файлов из windows в ubuntu

Если вы хотите копировать или перемещать данные между операционными системами Windows и Linux, это проще, чем вы думаете. Мы собрали для вас четыре способа сделать это:

  1. Безопасное копирование файлов через SSH
  2. Передача файлов из Windows в Linux через FTP
  3. Обмен данными с помощью программного обеспечения для синхронизации
  4. Используйте общие папки на вашей виртуальной машине

С помощью каждого из этих методов вы сможете легко и без особых усилий перемещать файлы между операционными системами. Давайте рассмотрим их по очереди и выясним, какой из них вам больше подходит.

1. Копирование файлов между Windows и Linux через SSH

Если на вашем устройстве Linux включен SSH, вы можете отправлять данные с одного компьютера на другой через командную строку. Для этого вам необходимо настроить SSH-сервер на вашем Linux-компьютере.

Начните с обновления ОС.

sudo apt update

После завершения обновлений установите SSH-сервер. Сервер OpenSSH — хороший вариант.

sudo apt install openssh-server

Подождите, пока он установится. Чтобы проверить, запущен ли сервер OpenSSH, наберите:

sudo service ssh status

Для передачи данных из Windows используйте SSH-клиент, например PuTTY. Для этого требуется, чтобы инструмент PSCP (клиент безопасного копирования) загружался в вашу систему Windows, чтобы работать вместе с PuTTY. Найдите оба на домашней странице PuTTY.

Обратите внимание, что PuTTY необходимо установить, а  PSCP работает без инсталляции. Просто сохраните загруженный файл pscp.exe в корне диска Windows C: или настройте его как переменную среды. Вам также необходимо подтвердить IP-адрес устройства Linux. Зарегистрируйтесь в терминале Linux с помощью

hostname -I

Установив соединение, вы можете перенести файл из Windows в Linux следующим образом:

c:pscp c:
omepathtoafile.txt user@remoteIP:homeuser
omepath
ewname.txt

Вам будет предложено ввести пароль для компьютера Linux перед началом передачи.

Хотите скопировать данные из Linux в Windows в одном сеансе SSH? Эта команда загрузит указанный файл в текущий каталог:

c:pscp user@remoteIP:homeuser
omefile.txt .

Обратите внимание на одинокий период в конце — включите это, иначе передача не будет работать.

2. Как перенести файлы из Linux в Windows с помощью FTP

Также можно использовать приложение протокола передачи файлов (FTP) с поддержкой SSH. Перенос файлов через SFTP в пользовательском интерфейсе, управляемом мышью, возможно, проще, чем полагаться на вводимые команды.

Перед запуском на машине Linux должен быть запущен SSH-сервер. Вам также следует убедиться, что вы установили приложение FTP в Windows, например FileZilla, которое имеет поддержку SFTP.

Чтобы использовать этот метод, запустите FileZilla, затем:

  1. Откройте File > Site Manager
  2. Создать New Site
  3. Установите протокол на SFTP
  4. Добавьте целевой IP-адрес в Host
  5. Укажите логин и пароль
  6. Установите тип входа в систему Normal
  7. Нажмите Connect, когда будете готовы.

Затем вы можете использовать приложение FTP для перемещения файлов из Windows в Linux и обратно с помощью перетаскивания.

Другой вариант, который можно рассмотреть, — это программа для синхронизации файлов. Обычно они кроссплатформенные и используют зашифрованный ключ для управления соединением между устройствами.

Все, что вам нужно сделать, это установить приложение, назначить папку синхронизации, а затем создать ключ. Настройте это на втором ПК, и ваши данные будут синхронизированы. Для этого доступны два хороших варианта:

  1. Resilio Sync: ранее известная как BitTorrent Sync, Resilio доступна практически для любой платформе, о которой вы можете подумать. Есть платная версия, но бесплатной достаточно для синхронизации двух устройств.
  2. SyncThing: для Linux, Windows, macOS и Android эта альтернатива Resilio Sync предлагает аналогичную функцию без платного компонента.

Вместо отдельного ПК обычно запускают Linux или Windows на виртуальной машине (ВМ). Есть ли способ передавать файлы между Windows и Linux, если они установлены на виртуальной машине?

К счастью, да. В VirtualBox вы можете создать виртуальный общий каталог для синхронизации данных.

Если вы используете Windows на виртуальной машине в Linux (или наоборот), VirtualBox уже настроен для совместного использования. Перед продолжением убедитесь, что на вашей виртуальной машине установлены гостевые дополнения.

В диспетчере VirtualBox выберите виртуальную машину, затем:

  1. Выберите Start> Headless Start (или при работающей виртуальной машине, Devices> Shared Folders)
  2. После запуска щелкните правой кнопкой мыши виртуальную машину и выберите «Настройки»> «Общие папки».
  3. Выбирать Machine Folders
  4. Щелкните символ + справа (или щелкните правой кнопкой мыши и выберите Добавить общую папку)
  5. Просмотрите путь к папке и найдите каталог, который хотите использовать.
  6. Задайте имя (при необходимости), затем ОК
  7. Установите флажок Auto-mount, чтобы обеспечить доступность общего ресурса при запуске виртуальной машины.
  8. Еще раз нажмите ОК, чтобы подтвердить и выйти.

Когда вы перезагрузите виртуальную машину, общий ресурс будет готов для обмена данными между хост-компьютером и гостевой операционной системой.

Есть еще один вариант обмена файлами между ПК с Windows и Linux. Однако создание общего файла в одной или обеих системах с последующим доступом к нему по сети в лучшем случае ненадежно.

Обмен файлами между Windows и Linux очень прост

Независимо от того, новичок ли вы в Linux или находите Windows незнакомой, обмен данными между ними проще, чем вы думаете. Мы рассмотрели несколько методов и рекомендуем вам попробовать каждый из них и решить, какой из них вам наиболее удобен.

Если Вы используете и Linux и Windows, вам в любом случае нужно как-то передавать файлы из Linux в Windows и обратно. Способов это сделать достаточно много, но большинство из них требуют особых знаний и опыта использования Linux. Например, как вариант можно создать общею папку в Linux или Windows, в первом случае нужно знать команды для настройки «samba», а во в тором для монтирования папки «mount». Сделать это новичку будет не просто. Но есть вариант гораздо проще, о нем Вам я сейчас и расскажу.

Если вам охота разобраться с монтирование сетевой папки в Linux и настройки Samba то можете почитать следующие статьи.

Ошибки при монтировании папки в Linux

Как подключить сетевой диск к Linux Mint

Как подключить сетевой диск к Fedora

Файловый сервер Samba на Linux Mint

Установка и настройка Samba сервера на Astra Linux

Самый простой способ передать файлы из Linux в Windows и обратно

Для обмена файлами межу системами Linux и Windows лучше использовать программу WinSCP.

Скачать WinSCP — https://winscp.net/eng/download.php

Она простая и очень удобная в использование, девайте пробежимся по процессу установки.

Файлы из Linux в Windows

Далее выбираем тип установки я рекомендую выбирает стандартную установку.

Linux в Windows  программа для передачи файлов

Теперь выбираем интерфейс «Коммандер» намного удобней и функциональней.

Linux в Windows

Остается только нажать «Установить».

WinSCP установка

Для того чтобы передать файлы из Linux в Windows или наоборот, запускаем программу WinSCP. Пишем IP адрес, порт имя пользователя и пароль от Linux.

Передача файлов из Linux в Windows

После удачного подключения в правой части отобразиться список каталогов системы Linux а в левой Windows.

Как передать файлы из Linux в Windows

Для того что передать какой либо файл или папку из из Linux в Windows, кликаем на нем ПКМ мыши выбираем пункт «Получить».

Быстрая передача файлов из Linux в Windows и обратно

Выбираем папку куда будет сохранен файл, так же тут можно настроить параметры передачи.

Как передавать файлы из Linux в Windows простой способ

Все передача файла из Linux в Windows завершена для того чтобы передать из Windows в Linux выбираем «Отправить» либо просто перетаскиваем мышкой.

Как передавать файлы из Linux в Windows и обратно

На мой взгляд это самый простой, быстрый и удобный способ передачи файлов из Linux в Windows и обратно. У данной программы очень широкий функционал и много возможностей но об этом я постараюсь рассказать в следующей статье. Но если Вы знаете другой, обязательно поделитесь!

  • Главная

  • Инструкции

  • Linux

  • Копирование файлов по SSH

Протокол SSH (Secure Shell) — это сетевой протокол для удаленного управления операционной системой через командную строку, который можно назвать стандартом для удаленного доступа к *nix-машинам. Позволяет производить защищенный вход на сервер, удаленно выполнять команды, управлять файлами (создавать, удалять, копировать и т.д.) и многое другое. Большинство облачных и хостинг-провайдеров требуют наличие SSH для доступа к своим сервисам. В этой статье рассмотрим копирование файлов по SSH в Windows и Linux-системах.

Копирование Файлов По Ssh (1)

SSH способен передавать любые данные (звук, видео, данные прикладных протоколов) через безопасный канал связи. В отличие от устаревших и небезопасных протоколов telnet и rlogin, в SSH обеспечивается конфиденциальность передаваемых данных и подлинность взаимодействующих сторон — необходимые условия для сетевого взаимодействия в Интернете.

Рассмотрим алгоритм установки зашифрованного соединения между клиентом и сервером:

  1. Установка TCP-соединения. По умолчанию сервер слушает 22-й порт. В работе протокола используется набор алгоритмов (сжатие, шифрование, обмен ключами), поэтому стороны обмениваются списком поддерживаемых алгоритмов и договариваются, какие из них будут использовать.
  2. Чтобы третья сторона не смогла выдать себя за сервер или клиент, стороны должны удостоверится в подлинности друг друга (аутентификация). Для этого используются асимметричные алгоритмы шифрования и пара открытый-закрытый ключ. Вначале проверяется аутентичность сервера. Если соединение происходит впервые, пользователь увидит предупреждение и информацию о сервере. Список доверенных серверов и их ключей записывается в файл по адресу /home/<username>/.ssh/known_hosts.
  3. Как только клиент убедился в достоверности сервера, стороны генерируют симметричный ключ, с помощью которого происходит шифрования всех обмениваемых данных. Таким образом при перехвате данных, никто, кроме сторон не сможет узнать содержимое сообщений.
  4. Далее происходит аутентификация пользовательского сеанса. Для этого используется либо пароль, либо присланный клиентом публичный ключ, сохраняемый в файле /home/<username>/.ssh/authorized_keys на сервере.

Самая популярная реализация на Линукс, OpenSSH, предустанавливается практически на всех дистрибутивах: Ubuntu, Debian, RHEL-based и других. На Windows в качестве клиентов можно использовать программы PuTTY, MobaXterm. Начиная с WIndows 10 и Windows Server 2019 инструменты OpenSSH доступны и на Windows.

Подробнее об SSH и работе с ним мы писали в статье «Как пользоваться SSH».

Копирование файлов

Копирование файлов в Linux по SSH осуществляется с помощью двух основных программ: scp и sftp. Обе утилиты поставляются вместе с пакетом OpenSSH. Суще­ствуют две основные версии протокола SSH: 1 и 2. Оболочка OpenSSH поддержи­вает обе версии, однако первая применяется редко.

Настройка автодополнений

При работе с scp крайне удобно использовать tab для автодополнения путей на удаленной машине. Для этого нужно настроить аутентификацию пользователя по публичному ключу.

Для начала сгенерируем открытый и закрытый ключ:

ssh-keygen

Вывод:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wJQ/XBZq69qXGHxseTuccUEpzWYHhsVVHcDXE3MrTHQ user@host

В конце вывода будет графическое представление ключа (key’s randomart image), которое легче запомнить, чем хэш ключа.

По умолчанию ключи (id_rsa.pub — открытый, id_rsa — закрытый) сохранятся в домашнем каталоге пользователя в директории .ssh. Также во время генерации программа попросит ввести пароль, которым будут защищены ключи. Если не хотите дополнительной защиты, нажмите два раза Enter.

Теперь копируем публичный ключ на удаленную машину:

ssh-copy-id [имя пользователя]@[ip-адрес]

Здесь [имя пользователя] — учетная запись пользователя, под которой будем логиниться на удаленной машине, [ip-адрес] — адрес удаленной машины (можно использовать доменное имя, если они локально резолвится). Далее вводим пароль пользователя. Если все прошло корректно, то в выводе будет команда для удаленного подключения:

Number of key(s) added: 1
Now try logging into the machine, with:   "ssh '<имя пользователя>@<ip-адрес>'"
and check to make sure that only the key(s) you wanted were added.

Secure copy (SCP)

Для копирования небольших объемов информации (например, конфиги сервисов) лучше всего подойдет утилита scp. 

Синтаксис команды для копирования с локальной машины на удаленный сервер:

scp [путь к файлу] [путь к файлу] [имя пользователя]@[ip-адрес]:[путь к файлу]

Попробуем скопировать файл на сервер:

scp test.txt user@192.168.1.29:/home/user/

Вывод:

test.txt                              100%   12   20.6KB/s   00:00

Можно передать несколько файлов за раз. Для этого указываем пути, разделенные пробелами:

scp test1.txt test2.txt user@192.168.1.29:/home/user/

Для копирования с удаленного сервера на локальную машину нужно поменять источник и место назначения местами:

scp user@192.168.1.29:/home/user/test.txt ~/

Для передачи директории используйте ключ -r:

scp -r testdir user@192.168.1.29:/home/user/

Также имеется возможность передачи с одного удаленного сервера на другой:

scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/

Secure FTP (SFTP)

Еще одной утилитой для передачи файлов, поставляемых в OpenSSH, является sftp. C релизом OpenSSH 9.0 утилита scp переведена по умолчанию на использование SFTP вместо устаревшего протокола SCP/RCP. Sftp работает практически также, как и классический ftp, за исключением того, что в sftp данные передаются не в виде обычного текста, а по зашифрованному туннелю (туннелирование — это процесс упаковки и передачи одного сетевого подключения с помощью другого). Также для работы sftp не нужен отдельный FTP-сервер.

Пример простого скачивания через sftp:

gendo@melhior:~$ sftp misato@192.168.1.29
Connected to 192.168.1.29.
sftp> ls
file.txt   file1.txt  file2.txt  test.txt  
sftp> lcd testdir/
sftp> get test.txt
Fetching /home/misato/test.txt to test.txt
test.txt                              100%  12  4.8KB/s  00:00    
sftp> bye

Сам по себе sftp применяется редко: вместо этого его используют файловые менеджеры, например Midnight Commander и Nautilus:

Image1

Использование sftp в файловом менеджере Nautilus. Удаленная машина отображается в виде папки с именем пользователя и IP-адресом.

Копирование файлов по SSH в Windows

Скачать файл с сервера или на сервер в Windows можно с помощью консольной программы pscp, поставляемой вместе с PuTTY. Синтаксис очень похож на обычный scp:

pscp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]

Для SSH-копирования файлов на сервер, используйте следующую команду:

pscp C:\server\test.txt misato@192.168.1.29:/home/misato/

Скачивание файла с сервера на компьютер:

pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txt

Увидеть список файлов на сервере можно при помощи опции -ls:

pscp -ls [имя пользователя]@[ip-адрес]:[путь]

Если в пути или в названии файла есть пробелы, используйте кавычки:

pscp "C:\dir\bad file name" misato@192.168.1.29:/home/misato

Для получения помощи по команде введите pscp без аргументов.

Заключение

Мы рассмотрели, как копировать файлы на сервер и с сервера с помощью безопасного сетевого протокола SSH. Если вы используете облачные серверы, важно уметь работать с SSH, так как он является стандартом для удаленного доступа к *nix-машинам и будет необходим вам в повседневной работе. 

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать. 

How to get a file from my path d:/test.txt and copy it to /etc/var/test/test.txt?

I’ve tried this:

scp d:/test.txt /etc/var/test/test.txt

but that didn’t work.

How do I set the hard disk from where I copy my files?

clabacchio's user avatar

asked Mar 14, 2014 at 10:30

user3414354's user avatar

1

Umm, if you’re using cygwin you want that command to look like

scp /cygdrive/d/test.txt <linux ip>:/etc/var/test/test.txt

Or you can use WinSCP, you’ll probably find that simpler.

answered Mar 14, 2014 at 10:47

quadruplebucky's user avatar

The best way to copy files from Windows to Linux using the command line is through pscp. It is very easy and secure. For pscp to work on your windows machine, you need it add its executable to your systems path. Once it is done, you can use the following format to copy the file.

pscp -pw password D:\test.txt [email protected]:/etc/var/test/test.txt

You can refer the following blog post for more information on pscp setup.

http://comtechies.com/2016/02/copy-files-between-windows-and-linux.html

answered Feb 25, 2016 at 10:13

Bibin Wilson's user avatar

2

Assuming you are on Windows, best way is to download and install cygwin. Get the path to the binary folder and add it to the system path. You can now run Linux commands on your command line.

Open the command prompt and go to the directory where your file is that you want to copy. Run the following command;

scp file.txt [email protected]:/opt/
  • scp — secure copy command
  • file.txt — file you want to copy
  • root — username used to log onto CentOS machine
  • 1.1.1.1 — IP address of CentOS machine. Needless to say your Windows machine and the CentOS machine have to be able to communicate with one another
  • :/opt — This is the directory with which you save the file to, I generally save everything to the /opt directory
  • Don’t forget the @ between the username and IP Address and the : between the IP Address and directory you are saving the file to

If you need a key to login into the server, enter the following;

scp key.pem file.txt [email protected]:/opt

For handiness sake I just copy the file I want to copy across to the key file directory, that way you know everything will run smoothly

answered Mar 20, 2014 at 17:15

Dan's user avatar

DanDan

1951 silver badge7 bronze badges

to copy a file from windows to linux write:

scp -i privatekey pathFileOnWindows user@publicIp:pathDirectoryLinux 

(the colon : is important!)

Example:

//I am located here in my console

C:\Users\oscar>

//I’m executing the next command

scp -i C:\Users\oscar\Documents\llaves\ubuntu.pem C:\Users\oscar\Documents\index.html [email protected]:~/

You can puth the full path or location in the path where the file is located. ~/ means the home directory of the user ubuntu

Jenny D's user avatar

Jenny D

27.9k21 gold badges75 silver badges114 bronze badges

answered Mar 19, 2019 at 3:47

Oscar Javier Gómez Sánchez's user avatar

1

I would highly recommend to use WinSCP if you’re a Windows user. It has a good intuitive interface and gets the job done easily and with no pain.

Download link

enter image description here

answered Oct 1, 2015 at 19:52

Andrei's user avatar

AndreiAndrei

1611 silver badge3 bronze badges

If you are on the remote machine:

scp user@hostname:D:\text.txt user@hostname:/etc/var/test/test.txt

If you are currently on Windows machine:

winscp D:\text.txt user@hostname:/etc/var/test/test.txt

henrycarteruk's user avatar

answered Mar 14, 2014 at 10:56

pulsarjune's user avatar

pscp with -pw exposes my password, which I don’t like. The below answer works just like me using scp on linux -> linux.

pscp -scp C:\Windows\foo.txt [email protected]:/foo/bar

answered Aug 23, 2019 at 22:06

lobi's user avatar

lobilobi

1,0932 gold badges15 silver badges30 bronze badges

First you have to install any ssh client (OpenSSH) which support command line interface for your windows machine:

And add its path to windows Variable:

My Windows System output like below:

enter image description here

Then you will able to execute the same commands on your windows machine

You can copy also complete directory by executing:

scp -r path/to/dir_name/* user@remote-ip:/path/to/destination_dir

To Copy Single File:

scp -r path/to/file_name.zip user@remote-ip:/path/to/destination_dir/

Replace the file extension with your own file.

Jeter-work's user avatar

answered Mar 1, 2016 at 14:44

Ramesh Chand's user avatar

WinSCP is definitely an useful utility, especially if you want a graphic interface. But if you’re looking for a command line alternative without having to deal with installing cygwin, there’s also pscp which is part of the PuTTY collection of tools.

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

answered Oct 1, 2015 at 21:25

p_q's user avatar

if you are using windows and want to copy to the linux server then install the WINSCP and just use the drag and drop

answered Oct 15, 2015 at 9:51

aryan's user avatar

OpenSSH is available for PowerShell since 2019. Instructions for installation are available from Microsoft’s Docs site. Instructions for use of OpenSSH utilities are available on OpenSSH project site.

Basically, once you install the OpenSSH suite, scp will work as you are accustomed.

scp user@source:path/to/source/file user@destination:path/to/target/file

where source and destination are hostnames or IP addresses and a path and filename without a host name/address will be treated as local.

answered Apr 5, 2021 at 14:20

Jeter-work's user avatar

Jeter-workJeter-work

8454 silver badges15 bronze badges

SCP <path of the file along with filename and extension> <name of vm>@<ip address>:<path where file needs to be copied>

answered Dec 19, 2022 at 7:49

Aditya Fargade's user avatar

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

  • Копирование файлов в cmd windows
  • Кончилось место на диске с windows 10
  • Конфиденциальность и защита windows 11
  • Копирование файлов windows 0 процентов с флешки
  • Конфликт windows 10 и nvidia