How to SCP from linux server to Windows client
I’m SSHing into a Linux machine using PuTTY and trying to copy a file down somewhere (anywhere) to my local machine. I figure SCP is the best candidate for the job but don’t really care, so long as the solution works!
I cd to the directory containing the file I want ( app.war ) and type the following:
I’ve tried both to no avail:
It got me thinking that perhaps SCP is a client/server tool and requires a client on my Windows machine, which isn’t there.
Am I just using the wrong syntax? Or am I way off-base? If so, what options do I have? Thanks in advance!
7 Answers 7
in order for you to copy files back to your Windows you need SSH daemon/service to be running on your Windows, it’s much easier to use this tool instead, it has an ability to import sessions from Putty, very plain forward client you’ll love it!
You are correct. SSHD is the SSH server services that runs on the host. It accepts connections from SSH clients (like PuTTy), SCP clients, and SFTP clients.
You can download pscp from the same website where PuTTY is hosted.
From the windows machine, you would execute a command similar to
pscp.exe someuser@somehost.com:/path/to/app.war c:\tmp
Get an admin command prompt
Check available versions
Install client
Install server
Start server and enable at boot
Find your Windows IP address
On your remote (Linux) machine, find your IP address.
Create a public SSH key
Copy public key from local (Windows) to remote (Linux) machine so you don’t have to type in a password all the time.
Note that ssh-copy-id is not currently available on Windows.
Do the same on your Linux machine (Note, ssh-copy-id does not work)
The method above did not work for me, so I ended up manually SCPing the public key over and pasting it into the C:/Users/YOU/.ssh/authorized_keys file.
That still did not work, so I had to modify the sshd_config file.
Open Notepad as Administrator
Add the following lines:
Create a password on Windows if you don’t already have one
— Note, you can still disable the Windows login screen by a) Setting the ‘Require sign-in’ option to never and b) Using the ‘netplwiz’ command and unticking the ‘Users must enter password. ‘ checkbox.
Now you should be able to SSH or SCP from your Linux machine
You can do this by using the Linux Ubuntu subsystem for Windows (you need to enable this as a Windows feature). Then you can use a Linux terminal client that runs on Windows by getting it from the Microsoft Store (e.g. Ubuntu 16.04 LTS). Then, if you have ssh security set up to remote into your Linux machine, you can scp from your local Windows Ubuntu terminal (when logged in as the username that you set for your Linux instance) something like this:
/ . enter RSA passphrase
The remote file will be copied into your local Ubuntu filesystem used by Windows e.g.
To SCP a file to a Windows machine, you need an SSH/SCP server on the Windows.
There’s no SSH/SCP support in Windows by default. You can install Microsoft build of OpenSSH for Windows (Releases and Downloads). It’s available as optional feature on Windows 10 version 1803 and newer. It can also be manually installed on older versions of Windows.
Though as you SSH into the Linux server from the Windows machine, you actually can download a file from the Linux server to the Windows server, instead of trying to upload the file from the Linux server to Windows server.
In you have an SSH access from Windows to Linux, you have an SCP access too (or even better an SFTP access).
Use any SCP/SFTP client available.
Another alternative is PuTTY toolset, which includes the pscp command-line tool with a syntax similar to the OpenSSH scp command. Also the latest versions of Windows 10 comes with OpenSSH scp built-in and it can be installed on older versions too.
Information Security Squad
stay tune stay secure
👉 Как использовать команду PSCP в Windows👨⚕️
Команда pscp – это реализация протокола SCP, в которой мы можем безопасно передавать и копировать файлы и папки по сети с помощью соединения SSH.
В этом уроке мы узнаем, как установить и использовать инструмент pscp в операционной системе Windows.
Скачать Pscp
Утилиту pscp можно скачать по следующей ссылке.
Существуют разные типы установки.
pscp может быть установлен в автономном режиме или с пакетом установки putty.
Я предпочитаю установочный пакет Putty, где настройка конфигурации Пути также выполняется автоматически.
Как видим, есть 32- и 64-битные версии.
Я буду использовать 64 бит, потому что моя ОС Windows 64 битная соответственно 🙂 .
Установка Pscp
Мы установим скачанный 64-битный MSI-пакет putty в обычном стиле Windows Далее-> Далее.
Помощь и Настройки
Если нам нужно перечислить все доступные опции и справочную информацию, мы можем просто ввести команду pscp в командную строку или MSDOS, как показано ниже.
Скачать или загрузить файл с удаленного сервера
Мы начнем с простого примера, где мы будем загружать или получать один файл с удаленного сервера или системы.
Как указывалось ранее, мы будем использовать протокол SSH для подключения и передачи.
Мы просто предоставим имя пользователя удаленной системы, IP-адрес или имя хоста и файл с его абсолютным путем.
Мы также предоставим имя файла, который мы хотим сохранить локально.
Мы видим, что сначала мы подключимся к серверу, который нам нужен, чтобы утвердить ключ удаленного сервера.
Затем мы предоставляем пароль для пользователя ismail.
После успешной аутентификации передача файла успешно завершена.
Скачать или загрузить несколько файлов с удаленного сервера
В предыдущем примере мы загрузили или получили один файл с удаленного сервера.
Мы также можем загружать и получать несколько файлов из удаленной системы в соответствии с их путем или расширением.
В этом примере мы загрузим все gzip-файлы с расширением gz, которые находятся в /home/ismail.
. означает, что мы будем сохранять в текущий рабочий каталог.
Загрузить или поместить файл на удаленный сервер
Мы также можем загрузить или поместить данный файл на удаленный SSH-сервер с помощью команды pscp.
Сначала мы предоставим имя файла, а затем предоставим имя пользователя удаленной системы, IP-адрес или имя хоста и путь, куда мы хотим положить файл.
Загрузить несколько файлов на удаленный сервер
Мы также можем поместить несколько файлов на удаленный сервер с помощью команды pscp.
Мы предоставим имена файлов перед удаленным сервером, информацию о пользователе.
В этом примере мы скопируем локальные файлы pass.txt, config.sys на удаленный сервер.
Скачать каталоги рекурсивно с удаленного сервера
Если мы хотим получить удаленные каталоги и скачать локальные, нам нужно использовать рекурсивную опцию -r.
Загрузить каталоги рекурсивно на удаленный сервер
Мы также можем отправлять или загружать локальные каталоги на удаленный сервер.
Мы снова будем использовать опцию -r.
Мы поместим каталог Downloads на удаленный сервер 192.168.142.144 и в папку /home/ismail/Downloads
Как работать с файлами через SSH/SCP в Windows на примере WinSCP
Рассмотрим стандартную ситуацию, у вас есть доступ к Linux системе через SSH, нужно подключиться и отправить несколько файлов используя Windows. Стандартными средствами Windows это не выполнить, в Windows нет SSH клиента. Вам необходимо воспользоваться программой поддерживающей протокол SSH или SCP, одна из таких программ WinSCP.
В чем отличие SSH от SCP?
SSH (Secure Shell) – защищенный сетевой протокол для безопасного управления сетевыми сервисами. Используется для выполнения команд на удаленной стороне.
SCP (Secure Copy Protocol) – протокол для безопасной передачи файлов между удаленной и локальной системой. Этот протокол основан на SSH протоколе.
Обычно если у вас есть доступ к SSH, то есть доступ и к SCP, но не всегда это работает в обратном направлении, к примеру хостинг провайдеры могут предоставить доступ к SCP для передачи файлов, но доступ к терминалу через SSH заблокировать.
Установка WinSCP
Скачиваем WinSCP только с официального сайта winscp.net. Перейдя на вкладку Download найдите ссылку Installation package.
Будьте внимательны реклама предлагает тоже скачать, обходим ее стороной. Хотя, для поддержки проекта можно и сделать пару переходов по рекламе.
В процессе установки мало интересного, несколько кликов и готово.
Создаем соединение
Сразу после запуска выдается окно создания соединения, оно предельно простое, только основные настройки, все остальное спрятано в Advanced.
На выбор предлагается несколько протоколов: SFTP , SCP , FTP , WebDAV .
После нажатия Login пытаемся соединится с сервером.
При первом подключении запрашивается подтверждение ключа шифрования, нажимая Yes – вы подтверждаете что доверяете данному хост, а отпечаток публичного ключа будет сохранен и считаться доверенным. No – доверяете данному хосту, но ключ не сохраняется, при последующих соединениях будет запрашиваться повторно. Cancel – совсем нет доверия, отказываемся от соединения.
Если в форме соединения пароль не указывали, он будет запрашиваться при каждом соединении.
Пользуемся WinSCP
После создания соединения в правой части у вас будет файловая система удаленного хоста, в левой части — локальная файловая система.
Далее можно копировать, удалять, переносить, редактировать, даже синхронизировать файлы между локальной и удаленной системой.
Копируя файлы между Linux и Windows нужно помнить: при переносе файлов могут теряться системные атрибуты.
К примеру перенесли исполняемый файл из Linux в Windows, а затем обратно, будут потеряны атрибуты, это уже будет обычный файл, без атрибута исполняемый. Для сохранения системных атрибутов можно запаковывать файлы или каталоги в архив tar.gz, а далее переносить и восстанавливать из архива.
Если требуется перенести множество мелких файлов, лучше предварительно запаковать их в архив, это будет значительно быстрее, чем копировать сотни мелких файлов.
Русифицированная версия
Сразу после установки вы получаете английскую версию интерфейса. Для добавления перевода нужно выполнить несколько шагов:
- в главном меню открыть Options -> Preferences
- в открывшемся окне выбрать Environment -> Languages
- нажать кнопку Get more…
- на открывшейся странице выбрать необходимый язык и скачать файл архив с переводом.
- файл перевода распаковать в каталог C:\Program Files (x86)\WinSCP
- после перезапуска WinSCP снова открыть окно Options -> Preferences , зайти в настройки Environment -> Languages , выбрать добавленный язык
- смена языка произойдет после перезапуска WinSCP
Установка SSH сервера в Linux
Вы хотите подключиться к Linux системе, но выдается ошибка Network error: Connection to «0.0.0.0» timed out . Одной из причин может быть отсутствие установленного пакета openssh-server на удаленной системе. Установить его можно с помощью команды (потребуется root доступ):
Для Red Hat Linux/CentOS
Сервер SSH использует порт 22, доступ к этому порту должен быть открыт. Пример команды для Ubuntu Firewall (ufw)