Ssh transfer file from windows

В статье мы расскажем, как копировать файлы в Windows и Linux-системах, и покажем основные команды, с помощью которых происходит передача файлов по SSH.

Для копирования файлов по SSH в Linux-системах и Windows используют разные инструменты:

  • scp (Secure CoPy) — утилита для безопасного копирования данных между Linux-системами по протоколу SSH. Она входит в состав OpenSSH, поэтому для работы с утилитой не нужно устанавливать дополнительное ПО;
  • pscp.exe — утилита для загрузки файлов по SSH в ОС Windows. Она обладает теми же возможностями, что и scp. Утилита входит в состав программы Putty — SSH-клиента для Windows. Скачать программу можно по ссылке.

Обратите внимание

Если файл, который вы хотите скопировать, уже существует на целевом хосте, при копировании он будет перезаписан.

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

Для Linux копирование файлов по SSH происходит с использованием команды scp. С её помощью можно копировать файлы:

  • с локального компьютера на удалённый сервер,
  • с удалённого сервера на локальный компьютер,
  • с одного удалённого сервера на другой.

Общий вид команды:

scp [опция] [источник] [получатель]

Обратите внимание

Для подключения к удалённому серверу вам понадобится логин и пароль пользователя.

Как скопировать файл по SSH с локальной машины на удалённый сервер

Как загрузить файл на сервер по SSH? Для этого используйте команду вида:

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

Пример команды:

scp /home/test.txt root@123.123.123.123:/directory

Файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».

Как скопировать файлы с удалённого сервера на локальный компьютер

При подключённом SSH скачать файл на локальный компьютер с удалённого сервера можно с помощью команды:

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

Пример команды:

scp root@123.123.123.123:/home/test.txt /directory

Файл test.txt будет загружен с сервера 123.123.123.123 на локальный компьютер в папку «/directory».

Как скопировать файл по SSH с одного удалённого сервера на другой

Подключитесь по SSH к серверу, на котором расположен файл. Затем выполните команду:

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

Пример команды:

scp /home/test.txt root@123.123.123.123:/directory

Файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».

Как скачать папку со всеми файлами и подпапками

Если вы хотите скачать папку со всеми файлами и подпапками, используйте ключ -r:

scp -r [источник] [получатель]

Как подключиться к серверу по нестандартному порту

Бывает, что для подключения по SSH нужно указать нестандартный порт. Без указания порта команда подключается к серверу по стандартному 22 порту. Чтобы указать нестандартный порт, введите команду с ключом -P:

scp -P [источник] [получатель]

Пример команды:

scp -P 12345 /home/test.txt root@123.123.123.123:/directory

Эта команда подключается по порту 12345 к серверу 123.123.123.123 и копирует на него файл «test.txt» с локального компьютера в директорию «/directory».

Как передать и скачать файлы по SSH на Windows

Скопировать файл по SSH на сервер можно командой:

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

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

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

Увидеть список папок и файлов на сервере можно через pscp.exe. Для этого введите:

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

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

pscp “C:\files or docs\file name” root@123.123.123.123:/home

Помогла ли вам статья?

Спасибо за оценку. Рады помочь 😊


 👍

Use the PSCP tool from the putty download page:

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

PSCP is the putty version of scp which is a cp (copy) over ssh command.

PSCP needs to be installed on your windows computer (just downloaded, really, there is no install process. In the Packaged Files section, pscp.exe is already included). Nothing needs to be installed on the school’s servers. PSCP and scp both use ssh to connect.

To answer the usage question from the comments:

To upload from your computer to a remote server:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path

This will upload the file file.txt to the specified directory on the server.
If the final part of the destination path is NOT a directory, it will be the new file name. You could also do this to upload the file with a different name:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path\newname.txt

To download a file from a remote server to your computer:

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\

or

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\newfile.txt

or

c:\pscp user@remote:\home\user\some\file.txt .

With a lone dot at the end there. This will download the specified file to the current directory.

Since the comment is too far down, I should also point out here that WinSCP exists providing a GUI for all this, if that’s of interest: http://winscp.net/eng/download.php

Home > How to Copy File from Windows to Linux Using SSH [2 Methods]

Want to copy and transfer files and folders securely from Windows to Linux using SSH? SCP (Secure Copy) can be the finest tool in this case. It actually works within SSH (Secure Shell) protocol and demonstrates a secure and high-speed data transfer from one computer to another over an unsecured network. In this guide, I will describe how to copy file from Windows to Linux over SSH using the SCP tool on Windows 10. Explore and follow the guide manually.

Key Takeaways

  • Learning about SSH protocol.
  • Learning how to copy files from Windows to Linux using PowerShell and SCP/SSH.

Requirements

  • Users must have Windows 10 setup.
  • Users’ Linux PC must be running an OpenSSH server.

Process Flow Chart

[Distro & Windows Used Throughout the Tutorial: Ubuntu 22.04.2 LTS & Windows 10]Flowchart on copying files from Windows to Linux using SSH

Downloads

To download WinSCP for file transfer follow the link: Winscp.net

If you want to make the SCP tool work on your Windows, there must be a running OpenSSH server on your Linux system to where you want to transfer files and folders. Here is how to get the SSH server installed:

sudo apt install openssh-server

EXPLANATION

  • sudo: Super User DO.
  • apt install: Advanced package utility.
  • openssh-server: Open source secure shell server permits remote users to access server.

Installing SSH serverAs everything is set up now, I’ll cover two methods to copy and transfer files from Windows to Linux securely in this guide.

You can go through the Comparative Analysis of Methods to know about the pros and cons of the used methods.

Method 01: Using PowerShell to Copy File from Windows to Linux Using SSH

By default, SCP is built into Windows 10 PowerShell. You don’t have to install it separately. You can use SCP in PowerShell directly by following the steps below:

Steps to Follow >

❶ Open Windows File explorer and copy the file location you want to copy from Windows to Linux.

➋ Now, open PowerShell and write cd and paste the copied file location like below and hit ENTER.

cd C:\Users\User\Downloads

EXPLANATION

  • cd: Navigates to assigned folder.
  • C:\Users\User\Downloads: The location of the file/folder.

➌ Then, use the SCP command like the following syntax:

SCP colors.txt [email protected]:/home/nadiba/Desktop

EXPLANATION

  • SCP: It allows secure file transfer between the hosts on a network.
  • colors.txt: The file you want to transfer. Here, I want to transfer the ‘colors.txt’ file.
  • [email protected]:/home/nadiba/Desktop: Replace ‘nadiba’ with your Linux username, replace ‘192.168.231.128’ with your LAN IP address or hostname, replace ‘/home/nadiba/Desktop’ with the folder where you want to transfer the file.

Writing command and copying file from PowerShell➍ Open Files on your Ubuntu and go to home>nadiba>Desktop to check the copied file.Opening the transferred file on Ubuntu to checkYou can see from the above image that the file ‘colors.txt’ has been transferred to the Linux system.

Read More: How to Share Files between Linux and Windows

Method 02: Using SFTP Client to Copy File from Windows to Linux Using SSH

For Windows, there are several SFTP clients available like WinSCP, FileZilla, Cyberduck, PuTTY etc. Among them, WinSCP can be a better option to transfer files from Windows to Linux when you want to avoid syntax complexity. It provides a convenient GUI interface. Here’s how to use WinSCP to copy files:

Steps to Follow >

❶ Download and install WinSCP on your PC. You will find the download link above in the Downloads section.

❷ Now, launch it and you will see a Login window.Entering file protocol, hostname, name, user-password in login windowIn the File protocol section, replace SFTP with SCP. Also, enter the hostname, username, password and click Save. Then, there will prompt a new window like the following image:Saving the entered inputsPress OK and then click Login.Clicking on 'Login' to proceed❸ Now, there will prompt a window asking ‘Continue connecting to an unknown server and add its host key to a cache?’. Click Yes.Clicking 'Yes' to the prompted window ‘Continue connecting to an unknown server and add its host key to a cache?’➍ Then, put your user password again for authentication.Authenticating by putting password again➎ Open File explorer on Windows, browse a file and drag the file into WinSCP’s window. The file will be shared instantly to the remote Linux PC. Selecting file in Windows to copy

Dragging & transferring file to Linux Here, I want to share an image file named ‘samba.png’. So, I dragged it into the WinSCP window and you can see that the file is transferred to Linux.

Read More: How to Share Files between Linux and Windows Dual Boot [3 Methods]

Comparative Analysis of Methods 

When it comes to copying files from Windows to Linux over SSH, you can use either PowerShell or SFTP client. Let’s make a comparative analysis between these two methods:

Methods Pros Cons
Method 1
  • SSH supported.
  • Flexibility.
  • Error-handling, logging capability.
  • Syntax complexity.
  • Limited custom options.
Method 2
  • User-friendly interface.
  • No syntax complexity.
  • Supports multiple file transfer protocols.
  • Less integration.
  • Limited features.

Overall, both methods are preferable with their individual capabilities. It’s your choice to select one which meets up your needs and preferences.

Conclusion

While working on Windows, transferring files to Linux machines is quite a common task. In the article, I have introduced different methods to copy files from Windows to Linux through SSH protocol. Hope you’ll be benefited from this guide.

People Also Ask

Does SCP work on Windows?

Yes, you can run SCP via PuTTY (An open source terminal emulator which provides secure connection).

Does PowerShell have SCP?

PowerShell does not have SCP by default. Check ‘Enable Secure Copy Protocol Support’ on the connection tab. Then, click Save Changes and restart.

Does SCP work on Internet?

Using SCP requires only a  running ssh server and client SCP on the internet works fine.

Does SCP have a limit?

SCP’s policy document;’s maximum size is 5120 bytes.

Related Articles 

  • How to Configure NFS Server in Linux? [5 Steps]
  • How to Access Shared Folder in Ubuntu [2 Methods]
  • How to Install and Configure Samba Server in Ubuntu? [4 Steps]
  • How to Install, Configure and Connect Samba Client on Ubuntu
  • Install, Configure and Connect Samba on Ubuntu Using GUI
  • How to Access Samba Share from Windows [2 Methods]

Nadiba Rahman

Hello, This is Nadiba Rahman, currently working as a Linux Content Developer Executive at SOFTEKO. I have completed my graduation with a bachelor’s degree in Electronics & Telecommunication Engineering from Rajshahi University of Engineering & Technology (RUET).I am quite passionate about crafting. I really adore exploring and learning new things which always helps me to think transparently. And this curiosity led me to pursue knowledge about Linux. My goal is to portray Linux-based practical problems and share them with you. Read Full Bio

Как копировать и передавать файлы по SSH

В статье мы расскажем, как передать файлы через SSH на разных операционных системах — Windows и Linux.

  1. Что нужно для подключения
  2. Как скопировать файл через SSH на Linux
    • Как отправить файл по SSH с локального компьютера на сервер
    • Как скачать файлы с удаленного сервера на компьютер
  3. Как скопировать файлы по SSH на Windows
    • Как загрузить файл с компьютера на сервер
    • Как скачать файл через SSH на локальный компьютер

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

  • IP-адрес или имя сервера,
  • логин пользователя (в том числе root),
  • пароль пользователя,
  • порт.

Чаще всего копирование файлов через SSH делают с помощью двух мини-программ:

  1. scp (Secure Copy) — утилита для Linux. Она позволяет безопасно передать или скачать файл по протоколу SSH. Программа scp входит в комплект OpenSSH и не требует установки.
  2. pscp.exe — это утилита для Windows. Она используется по тому же назначению, что и scp: подключение к серверу по SSH и работа с файлами. Эта мини-программа входит в состав PuTTY: ее можно скачать на официальном сайте. Процедура настройки SSH-клиента описана в нашей статье.

Важно: если загружаемый файл существует на целевом хосте, он перезапишется.

Работа через SSH предполагает использование консольных команд. Наиболее популярные из них вы можете найти в статье.

Как скопировать файл через SSH на Linux

Копирование файлов по SSH на Linux можно сделать с помощью scp. Эта утилита позволяет:

  • передать файл с локального компьютера на удаленный сервер,
  • скачать файл с удаленного сервера на локальный компьютер.

Команда scp имеет следующий синтаксис:

scp опция источник получатель

Как отправить файл по SSH с локального компьютера на сервер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

scp /home/test.doc username@servername:/directory

Где:

  • /home/test.doc — путь к файлу на локальном компьютере;
  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • directory — директория на сервере, в которую нужно загрузить файл.

Готово, вы загрузили файл на сервер.

Как скачать файлы с удаленного сервера на компьютер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

scp username@servername:/directory/test.doc /home

Где:

  • /directory/test.doc — путь к файлу на сервере;
  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • home — папка на компьютере, в которую нужно загрузить файл.

Готово, вы скачали файл на компьютер.

Как скопировать файлы по SSH на Windows

Копирование через SSH на ОС Windows выполняется с помощью утилиты pscp.exe из набора PuTTY.

Как загрузить файл с компьютера на сервер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

pscp C:/documents/test.doc username@servername:/directory

Где:

  • /documents/test.doc — путь к файлу на локальном компьютере;
  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • directory — директория на сервере, в которую нужно загрузить файл.

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

pscp “C:/documents/test 1.doc” username@servername:/directory

Готово, вы загрузили файл на сервер.

Как скачать файл через SSH на локальный компьютер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

pscp username@servername:/directory/test.doc C:/documents

Где:

  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • directory/test.doc — путь к файлу на сервере;
  • /documents — директория на локальном компьютере, в которую нужно загрузить файл.

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

pscp username@servername:”/directory/test 1.doc” C:/documents

Готово, вы скачали файл на компьютер.

There are various tools available to copy files and directories between Linux server. In this article we will use SSHFS to transfer files over SSH from local to remote and remote to local server.

You can also use below tools to copy files between Linux servers:

  • RSYNC — my personal favorite
  • SCP
  • NFS
  • HTTPS
  • SFTP
  • Samba

Overview on SSHFS

  • SSHFS (Secure SHell FileSystem) is a file system for Linux (and other operating systems with a FUSE implementation, such as Mac OS X or FreeBSD) capable of operating on files on a remote computer using just a secure shell login on the remote computer.
  • The sshfs command is a client tool for using SSHFS to mount a remote file system from another server locally on your machine.
  • SSHFS allows you to mount a remote directory from remote server on your local machine using a mount point, and have it treated just like any other directory.

Advantage of using SSHFS

  • Compared to other shared filesystem such as NFS and Samba we do not need any server or client side configuration
  • SSHFS is a simple client tool which does not requires any additional configuration
  • You can also use SSHFS to transfer files over SSH between Linux and Windows Server
  • The files are transferred in completely encrypted channel so it is very secure

Drawbacks of using SSHFS

  • You mount the remote directory on local server similar as NFS server but with transfer over SSH using SSHFS both encryption and decryption is involved which can cause performance impacts
  • You should also save your data on the mount point as if there is a network connection problem then you may loose your data

ALSO READ: bash: curl: command not found [SOLVED]

Transfer File over SSH between two Linux servers

Install SSHFS on Linux

SSHFS is an opensource project and is not available in most default repositories of distributions

To install SSHFS on RHEL/CentOS 7, we must first install EPEL repository

# yum -y install epel-release

HINT:

At the time of writing this article, SSHFS was not available for RHEL/CentOS 8

Next install sshfs on your client node

[root@server1 ~]# yum -y install sshfs

To install sshfs on Ubuntu and Debian

$ sudo apt install sshfs

Mount Remote File System

To transfer files over SSH using SSHFS, we must execute SSHFS using below syntax:

sshfs [user@]host:[dir] mountpoint [options]

Check sshfs -h to get the complete list of supported options

In this example I have installed SSHFS on server1 and we will mount

Remote directory (/shared) from server2

[root@server2 ~]# ls -l /shared/
total 0
-rw-r--r-- 1 root root 0 May 17 19:21 file1
-rw-r--r-- 1 root root 0 May 17 19:21 file2
-rw-r--r-- 1 root root 0 May 17 19:21 file3

to my local Linux node on server1 at (/mount_point)

[root@server1 ~]# ls -l /mount_point/
total 0

So we must execute sshfs on server1, we are using root user to transfer files over SSH. You can use any normal user, but make sure this user has enough permission to access the remote directory on server2

[root@server1 ~]# sshfs root@192.168.43.10:/shared /mount_point
root@192.168.43.10's password:

There was no error reported so the mount was successful. Verify the mount point on server1

[root@server1 ~]# mount | grep shared
root@192.168.43.10:/shared on /mount_point type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

You can now access the content of remote directory (/shared) from server2 on /mount_point directory on local Linux node at server1

[root@server1 ~]# ls -l /mount_point/
total 0
-rw-r--r--. 1 root root 0 May 17 19:21 file1
-rw-r--r--. 1 root root 0 May 17 19:21 file2
-rw-r--r--. 1 root root 0 May 17 19:21 file3

Now we can add and modify content under /mount_point at server1 and the changes will be reflected runtime on server2 at /shared

Snippet from my terminal

How to transfer files over SSH with SSHFS in Linux & Windows

Transfer files over SSH in Linux

ALSO READ: Easy regex to grep exact match with examples

To permanently mount this remote directory use /etc/fstab using below syntax:

user@host:/remote/path  /local/mount_point  fuse.sshfs  defaults  0  0

In this example we will add below content in our /etc/fstab

root@192.168.43.10:/shared     /mount_point    fuse.sshfs    defaults   0  0

Un-mount Remote File System

Once you have transferred your files, you can also un-mount the remote file system using umount. Execute umount on server1:

[root@server1 ~]# umount /mount_point/

Verify and make sure there are no mount paths using /shared directory from remote server i.e. server2

[root@server1 ~]# mount | grep shared

Transfer File over SSH between Windows and Linux servers

  • You can also use SSHFS to transfer files over SSH between Windows and Linux server.
  • This can also be achieved using Samba but let us concentrate on SSHFS for the sake of this article

Install SSHFS on Windows

  • To transfer files over SSH between Windows and Linux, you must install SSHFS on the WIndows server.
  • You can get the files required to installed from the official Github page
  • Download WinFsp and follow the onscreen instructions to install WinFsp on your Windows server
    Download SSHFS-Win and follow the onscreen instructions to install SSHFS-Win on your Windows server
  • At the time of writing this article I have installed winfsp-1.6.20027.msi and sshfs-win-3.5.20024-x64.msi

Mount Remote File System

Once you have installed WinFsp and SSHFS-Win on your windows server, next we must map the network location from remote server to a local mount point

I am using WIndows 10 so I will share the instructions based on my environment.

In Windows Explorer select This PCMap Network Drive

How to transfer files over SSH with SSHFS in Linux & Windows

Map network Drive

Provide the path of your remote server and remote directory using the below syntax

\\sshfs\REMUSER@HOST[\PATH]

NOTE:

Here we cannot directly give our mount point as /shared from our remote Linux server. We must use (/) to navigate around the Linux server. In this example we will connect to the home folder of our root user using

\\sshfs\root@192.168.43.10\

How to transfer files over SSH with SSHFS in Linux & Windows

Mount remote file system

Provide the login credentials for root user from the remote server i.e. server2

How to transfer files over SSH with SSHFS in Linux & Windows

login credential

If all is good, you will be connected to your remote Linux server using Windows server. You can verify the path in the Navigation Pane. By default we are connected to home folder of root user

ALSO READ: PSSH — 10 practical examples to use parallel SSH in Linux

How to transfer files over SSH with SSHFS in Linux & Windows

Transfer files over SSH between Windows and Linux

How to connect to different folder using SSHFS in Windows?

In Windows SSHFS we are by default connected to user’s home directory so we must provide the absolute path using navigation symbols i.e. to go to /shared directory our path to transfer files over SSH on Windows would be //sshfs/root@192.168.43.10/../shared

If you NOTICE, I have first changed my current directory using ../ followed by the path of /shared directory. I hope you understand the point.

How to transfer files over SSH with SSHFS in Linux & Windows

Provide different remote directory path

Now we are connected to /shared directory where we had created three dummy files on server2

How to transfer files over SSH with SSHFS in Linux & Windows

Transfer files over SSH between Linux and Windows

For list of Advanced Usage with Windows SSHFS, check the official Github page for instructions

Disconnect Remote File System

Once you are done, to disconnect the network drive, in Windows Explorer select This PC. Look out for your mapped drive and Right Click on the drive to get a list of options. Select Disconnect to remove the mapped drive from your Windows server.

How to transfer files over SSH with SSHFS in Linux & Windows

Disconnect mapped drive from Windows

Conclusion

Lastly I hope the steps from the article to configure NIC teaming on Linux was helpful. In this tutorial we learned about SSHFS and how we can use SSHFS to transfer files over SSH between two Linux servers or between Linux and Windows server. So, let me know your suggestions and feedback using the comment section.

References

I have used below external references for this tutorial guide
man page for sshfs
Windows SSHFS Github page

Can’t find what you’re searching for? Let us assist you.

Enter your query below, and we’ll provide instant results tailored to your needs.

  • Ssh connect to windows server
  • Ssh server windows 7 скачать
  • Ssh connect to host localhost port 22 connection refused windows
  • Ssh scp from linux to windows
  • Ssh no such file or directory windows