Download from remote ssh

How to Download and Upload Files over SSH

SSH is the most secure protocol for accessing remote servers. It provides the highest level of end-to-end data security over communication channels. The SCP (Secure Copy) command uses the SSH protocol for copying files between remote and local servers.

The remote server must have a running SSH server. This tutorial will help you to understand download and upload files over SSH protocol.

Download file over SSH Protocol

Here are some useful examples for downloading files from the remote system over SSH protocol.

  • This will connect to example.com server with user “username” and copy the /backup/file.zip file to local system directory /local/dir. To use theis command replace the values as per your environment.
  • If the SSH is running on a non-standard port, You can specify the port using -P option with SCP command.
  • If your remote server required a private key to connect server, You can use -i followed by a private key file path to connect your server using the SCP command. This can be helpful for AWS servers.

Upload file using SSH

You can also upload files to the remote server using SSH protocol using the SCP command. Use the following example command for uploading files to the SSH server.

Similarity you can use -P switch to define port of the SSH server and -i to define private key for the user authentication.

Conclusion

In this tutorial, you have learned about transferring files between two systems over the SSH protocol.

Источник

Download from remote ssh

We stand with our friends and colleagues in Ukraine. To support Ukraine in their time of need visit this page.

How to download a file via SSH

OpenSSH SSH/SecSH protocol suite (which comes pre-installed with OS X and available for download for most other *nix systems) includes the scp (secure copy) application which can be used to upload and download files from and to remote hosts.

Here are few examples of how to use it for:

1. Uploading a file from a local computer to a remote one:

scp /path/to/local/file username@hostname:/path/to/remote/file

This command can be used to upload a specific file to your account on the server:

scp -P 21098 /home/localuser/site/example.html cpanel_user@servername:/home/cpanel_user/public_html

Or this one, if the entire directory should be uploaded:

scp -P 21098 -r /home/localuser/site/ cpanel_user@servername:/home/cpanel_user/public_html

2. Downloading a file from a remote system to your computer:

scp username@hostname:/path/to/remote/file /path/to/local/file

This particular example can be used to download an error_log from public_html of a hosting account to your local computer:

scp -P 21098 cpanel_user@servername:/home/cpanel_user/public_html/error_log /home/localuser/logs/

NOTE: When one of the commands above is used, you will be asked to insert the password into your cPanel account (when you enter the password, it is automatically hidden for the security purposes).

Читайте также:  Windows 10 сетевой принтер отключен как включить

1. Uploading a file from a local computer to a remote one:

scp /path/to/local/file username@hostname:/path/to/remote/file

This command can be used to upload a specific file to your account on the server:

2. Downloading a file from a remote system to your computer:

scp username@hostname:/path/to/remote/file /path/to/local/file

This particular example can be used to download an error_log from public_html of a hosting account to your local computer:

You can use PowerShell on other Windows versions as well following the next workarounds:

To use native Windows command line utilities, select the Start button > click on the Run… option. In the command line type in powershell and press Enter:

Here is an example of the command for downloading the file from the server to your computer:

Invoke-WebRequest http://domain.com/path-to-file.zip -UseBasicParsing -OutFile local.zip

http://domain.com/path-to-file.zip should be replaced with the URL to the file in question
local.zip should be replaced with the name you would like the downloaded file to be stored with. You may also specify a full path there. By default, it will be downloaded to C:\Users\your-windows-username directory:

The Invoke-WebRequest uses the HTTP protocol instead of SSH one. Its sole resemblance to scp is that the command line interface is being used as well.

This method has its disadvantages. First of all, the connection is not encrypted unless you have an SSL certificate and a specified https:// protocol in your URL. The file should be publicly accessible, which is not acceptable in some cases. Also, the file contents are stored in memory before being recorded to the disk, making this approach unsuitable for downloading large files.

2. Another workaround includes installing the Cygwin command line interface for Windows, which features the scp command. In order to use it, do the following:

  • Download the cygwin installation file from here
  • Install cygwin on your computer (do not forget to include openssh from the net bundle during installation process)
  • Once installed, you will be able to run the scp command from the first part of the article using the Windows command line terminal (accessible via the Start button >Run… option > In the command line, type in cmd and press Enter).

Источник

Как скачивать файлы по 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.

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

Сохраняем, закрываем меню настроек, на всякий случай перезапускаем 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, то есть надёжные.

Если приватный ключ для подключения находится по другому пути, то используйте опцию —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, то не нужно устанавливать какие-либо дополнительные программы чтобы загрузить на него файлы или скачать с него файлы. Можно воспользоваться различными вариантами с удобным графическим интерфейсом, либо утилитами командной строки, которые можно задействовать в скриптах.

    Источник

    Поделиться с друзьями
    КомпСовет
    Adblock
    detector