Ssh download file to local windows

Как скачивать файлы по SSH

Графический интерфейс SFTP

Если на сервере или просто удалённом компьютере запущен SSH, то для передачи файлов на этот компьютер или скачивания файлов с него не нужно устанавливать FTP или любое другое дополнительное программное обеспечение.

SSH из коробки поддерживает протоколы SCP и SFTP. Причём в пакете ssh поставляются одноимённые утилиты scp и sftp для обмена файлами. Подробности о них вы найдёте в статье «SSH (ч.5): Копирование файлов с помощью scp и sftp». Но это утилиты с интерфейсом командной строки, что не всем может быть удобно.

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

SFTP в FileZilla

FileZilla — это не только FTP клиент, эта программа также поддерживает FTP через TLS (FTPS) и, главное для нас сейчас, эта программа поддерживает тот самый протокол SFTP. Программа является бесплатной, у неё открыт исходный код, она работает под Linux и Windows.

Использование программы элементарное — нужно указать хост (IP), имя пользователя и порт. Предположим, я хочу подключиться к хосту 192.168.1.68, под пользователем root. В качестве порта нужно указать порт, на котором работает SSH на этом удалённом сервере, по умолчанию это 22.

Можно просто ввести данные в поля, но мне нравится составлять такие URI адреса, которые начинаются на sftp:// — дело в том, что они нам ещё пригодяться!

Итак, я составил адрес

вставляю его в поле «Хост» и нажимаю кнопку «Быстрое подключение»:

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

В этом нет ничего страшного — это сделано для дополнительной защиты (если кто-то подменит хост, то мы об этом узнаем сразу при попытке подключения).

Нажимаем «ОК» и получаем список файлов директории, к которой мы подключились:

Теперь мы можем бродить по каталогам, скачивать файлы с удалённого компьютера и закачивать туда файлы с локальной машины.

SFTP в Double Commander

Double Commander, как и его прототип Total Commander, умеют работать с SFTP с помощью плагина. Но в Double Commander плагин нужно установить, прежде чем эта программа начнёт понимать SFTP.

Я покажу на примере Double Commander в Linux. Если у вас Windows и показанный способ не сработает, то напишите в комментариях, попробуем вместе найти решение (вероятные пути — пробовать плагины Total Commander для SFTP, поскольку Double Commander совместим с ними).

Итак, нам нужен плагин gvfs, скачиваем его.

Распаковываем скаченный архив.

Теперь открываем Double Commander, в меню переходим в «Настройки» → «Параметры» → Вкладка «Плагины»Плагины WFX.

Читайте также:  Что будет если выключить компьютер при установке обновлений windows

Нажимаем кнопку «Добавить» и указываем скаченный файл:

Сохраняем, закрываем меню настроек, на всякий случай перезапускаем Double Commander.

Теперь нажимаем на эту кнопку и затем выбираем Network:

Можно нажать и ввести уже знакомый нам URI (если честно, мне просто лень расписывать данные по полям):

Можно указать целевой путь, то есть папку, которая будет открыта на сервере после подключения. Кстати, ведь его можно было указать прямо в URI (об этом чуть ниже):

Имя пользователя мы уже указали в URI, поэтому можно пропустить:

У меня для SSH настроен вход без пароля (аутентификация по ключу), поэтому ничего не ввожу:

Попадаю на удалённый хост, здесь я могу переходить по папкам, делать различные операции с файлами на удалённом компьютере в двухфайловом менеджере:

Прямо в URI можно указывать папку, которая должна быть открыта после подключения. Предположим, я хочу, чтобы открывалась папка /var/www/html, тогда URI будет иметь следующий вид:

В Double Commander и FileZilla можно настроить подключения, чтобы соединение с сервером происходило сразу при выборе желаемого подключения.

SFTP в менеджере файлов: управление файлами на удалённом хосте через стандартный файловый менеджер

SFTP протокол поддерживается многими графическими файловыми менеджерами, которые можно найти в дистрибутивах Linux. Используя как Nemo (Cinnamon), Nautilus (GNOME), так и Konqueror (KDE), мы можем вводить URI (ссылки) начинающиеся на sftp:// в строку перехода и работать с файлами, расположенными на удалённой системе с запущенным SSH сервером.

К примеру, пользователем на удалённой системе является root, IP адрес удалённого хоста 192.168.1.68 и на нём запущен SSH сервер на 22 порту и я хочу открыть папку /root/bin/. Тогда я открываю стандартный менеджер файлов Linux и ввожу туда адрес:

Теперь я могу работать с файлами как если бы они были в локальной системе: перетаскивать, смотреть их свойства, загружать на локальный компьютер.

Кстати, желаемое соединение до удалённой системы можно добавить в закладки стандартного менеджера файлов и открывать его одним кликом. И уже несколько лет как стандартный менеджер файлов Linux поддерживает дополнительную вкладку — в настройках вы можете включить вторую панель для файлового менеджера Linux.

Как в curl работать с протоколами SCP и SFTP

В отличие от всех рассмотренных ранее, cURL — это программа с интерфейсом командной строки. Но всё равно рассмотрим и вариант с cURL — возможно, кому-то пригодиться.

На мой взгляд, работать с протоколами SCP и SFTP в командной строке удобнее через родные утилиты, поэтому я бы в первую очередь порекомендовал изучить «SSH (ч.5): Копирование файлов с помощью scp и sftp» — там подробно описано как пользоваться этими программами.

cURL и SCP

Протокол SCP предназначен в первую очередь для скачивания и закачки файлов. Для скачивания используется команда вида:

Файл oneshot.py из папки /root/bin/ будет скачен в текущую рабочую директорию с исходным именем. Чтобы сохранить файл в другое место и/или с другим именем, добавьте опцию -o, —output — в качестве укажите путь в локальной системе.

Мы используем опцию -k которая предназначена для разрешения небезопасных соединений, то есть когда невозможно валидировать (проверить) ключи. Ключи для SSH генерируются пользователями, поэтому проверить их с помощью третьей стороны невозможно. При этом данные соединения не стоит считать небезопасными — они такие же, как и при подключении по SSH, то есть надёжные.

Читайте также:  Feature update to windows 10 20h2 via enablement package kb4562830

Если приватный ключ для подключения находится по другому пути, то используйте опцию —key

/.ssh/id_rsa. В современных версиях cURL указывать публичный ключ не нужно — программа сама извлечёт его из приватного ключа. Если вход по ключу не настроен, то используйте опцию —user «testuser:testpassword» или -u user.

Для закачки файла на удалённый сервер используйте опцию -T, —upload-file , где вместо укажите файл, который нужно выгрузить. Пример команды:

cURL и SFTP

При работе с протоколом SFTP, также применяются опции:

  • -k (разрешить подключения при неудачной валидации ключа)
  • —key

/.ssh/id_rsa — указать другое расположение приватного ключа

  • —user «testuser:testpassword» или -u user — на случай если не настроен вход по ключу
  • -T, —upload-file для указания файла выгрузки
  • Для листинга списка файлов файлов в директории /root/bin/ пользователя root на хосте 192.168.1.68, порт 22:

    • Выгрузка используя curl на SFTP
    • Загрузка используя curl на SFTP
    • Переименование используя curl на SFTP
    • Удаление используя curl на SFTP
    • Создание директории используя curl на SFTP
    • Удаление директории используя curl на SFTP

    Как можно догадаться, -Q — это опция для отправки команд на SFTP сервер. Дефис перед командой (префикс) также имеет значение (имеются разные префиксы). Нужно знать, что cURL поддерживает не все команды SFTP — подробности в документации по cURL:

    Опция —ftp-create-dirs означает создать необходимую директорию, если она отсутствует (в противном случае работа cURL завершится ошибкой).

    Заключение

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

    Download file to local pc from remote ssh

    Because of my web host, I can’t use FTP. There’s a file I’d like to download. How can I do this through ssh?

    6 Answers 6

    If you’re on linux, simply use scp from the command line like this:

    If you’re on windows, I recommend FileZilla. It’s a good free ftp client that supports file transfer over ssh (sftp).

    secure copy (SCP)

    As you are most familiar with ftp, you should use sFTP as previously mentioned.

    You can use an FTP client, such as FileZilla and apart from creating the connection, everything will then work the same as if you were using ftp.

    It is easy to set up and you don’t need to learn anything new.

    On the other hand

    is the quickest way to transfer one file.

    Another alternative if you are running Linux is that you can map the ssh server as if it were a local drive using sshfs from the command line or on the GNOME desktop:

    Places > Connect to server.

    and choose SSH from the drop down, enter your hostname username and password and you can drag and drop files in a file manager.

    If you have KDE installed (most probable if you are on a Unix-like system), you can use the fish IOSlave. Simply type fish://username@domainname_or_IP/ in the address bar of konqueror, for example. Most KDE applications can treat files on a remote SSH host as if they were local files this way.

    In computing, the SSH File Transfer Protocol (also Secret File Transfer Protocol, Secure FTP, or SFTP) is a network protocol that provides file access, file transfer, and file management functionalities over any reliable data stream. It was designed by the Internet Engineering Task Force (IETF) as an extension of the Secure Shell protocol (SSH) version 2.0 to provide secure file transfer capability, but is also intended to be usable with other protocols. The IETF of the Internet Draft states that even though this protocol is described in the context of the SSH-2 protocol, it could be used in a number of different applications, such as secure file transfer over Transport Layer Security (TLS) and transfer of management information in VPN applications.

    Not the answer you’re looking for? Browse other questions tagged ssh or ask your own question.

    Hot Network Questions

    Subscribe to RSS

    To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

    site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.4.16.39093

    By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

    How to download a file from my server using SSH (using PuTTY on Windows)

    When I try downloading a file from my server onto my computer, it actually downloads the file onto the server.

    (Note I am already SSH’d into my server before typing this command. I’ve watched tutorials on YouTube and people are using their terminal without SSHing into any particular server, however I don’t think I can do this with PuTTY on Windows?)

    The problem is that I am specifying the location to download the file as only

    This creates a folder called Desktop in my server, instead of copying the files onto my local desktop.

    I’d greatly appreciate any assistance.

    I am able to use this command on Linux.

    I have successfully download the folder onto my desktop:

    I still need insight onto how I can do this on a Windows machine.

    6 Answers 6

    There’s no way to initiate a file transfer back to/from local Windows from a SSH session opened in PuTTY window.

    Though PuTTY supports connection-sharing.

    While you still need to run a compatible file transfer client ( pscp or psftp ), no new login is required, it automatically (if enabled) makes use of an existing PuTTY session.

    Even without connection-sharing, you can still use the psftp or pscp from Windows command line.

    Note that the scp is OpenSSH program. It’s primarily *nix program, but you can run it via Windows Subsystem for Linux or get a Windows build from Win32-OpenSSH (it is already built-in in the latest versions of Windows 10).

    If you really want to download the files to a local desktop, you have to specify a target path as %USERPROFILE%\Desktop (what typically resolves to a path like C:\Users\username\Desktop ).

    Alternative way is to use WinSCP, a GUI SFTP/SCP client. While you browse the remote site, you can anytime open SSH terminal to the same site using Open in PuTTY command.
    See Opening Session in PuTTY.

    With an additional setup, you can even make PuTTY automatically navigate to the same directory you are browsing with WinSCP.
    See Opening PuTTY in the same directory.

    Читайте также:  Syslog server windows служба
    Оцените статью