Загрузить файл на сервер ssh с windows

Использование встроенного SSH клиента в Windows 10

В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим устройствам по защищенному протоколу, вместо Putty, MTPuTTY или других сторонних SSH клиентов. Встроенный SSH клиент Windows основан на порте OpenSSH и предустановлен в ОС, начиная с Windows 10 1809.

Установка клиента OpenSSH в Windows 10

Клиент OpenSSH входит в состав Features on Demand Windows 10 (как и RSAT). Клиент SSH установлен по умолчанию в Windows Server 2019 и Windows 10 1809 и более новых билдах.

Проверьте, что SSH клиент установлен:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

В нашем примере клиент OpenSSH установлен (статус: State: Installed).

Если SSH клиент отсутствует (State: Not Present), его можно установить:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

]Бинарные файлы OpenSSH находятся в каталоге c:\windows\system32\OpenSSH\.

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Как использовать SSH клиенте в Windows 10?

ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command]

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Если SSH сервер запущен на нестандартном порту, отличном от TCP/22, можно указать номер порта:

Например, чтобы подключиться к Linux хосту с IP адресом 192.168.1.202 под root, выполните:

Затем появится запрос пароля указанной учетной записи, укажите пароль root, после чего должна открытся консоль удаленного Linux сервера (в моем примере на удаленном сервере установлен CentOS 8).

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Если вы используете SSH аутентификацию по RSA ключам (см. пример с настройкой SSH аутентификации по ключам в Windows), вы можете указать путь к файлу с закрытым ключом в клиенте SSH так:

Также вы можете добавить ваш закрытый ключ в SSH-Agent. Сначала нужно включить службу ssh-agent и настроить ее автозапуск:

set-service ssh-agent StartupType ‘Automatic’
Start-Service ssh-agent

Добавим ваш закрытый ключ в базу ssh-agent:

Теперь вы можете подключиться к серверу по SSH без указания пути к RSA ключу, он будет использоваться автоматически. Пароль для подключения не запрашивается (если только вы не защитили ваш RSA ключ отдельным паролем):

Еще несколько полезных аргументов SSH:

SCP: копирование файлов из/в Windows через SSH

С помощью утилиты scp.exe, которая входит в состав пакета клиента SSH, вы можете скопировать файл с вашего компьютера на SSH сервер:

scp.exe «E:\ISO\CentOS-8.1.1911-x86_64.iso» root@192.168.1.202:/home
Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Можно рекурсивно скопировать все содержимое каталога:

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

scp.exe root@192.168.1.202:/home/CentOS-8.1.1911-x86_64.iso e:\tmp

Итак, теперь вы можете прямо из Windows 10 подключаться к SSH серверам, копировать файлы с помощью scp без установки сторонних приложений и утилит.

Источник

Копирование файлов и запуск команд через SSH

Подключение к серверу посредством SSH – один из основных методов управления *nix серверами. Довольно часто возникает необходимость загрузить файл на удаленный сервер, либо выгрузить, и других средств кроме SSH-подключения нет. К счастью, копирование файлов через защищенное соединение – одна из штатных функций этого протокола и реализуется с помощь отдельной команды scp в Linux-системах, либо с помощью pscp.exe, входящей в состав SSH-клиента Putty для операционной системы Windows.

Работаем на ОС семейства Linux

Используем следующий формат команд:

scp [модификатор] [источник] [место_назначения]

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

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

Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 123.123.123.123 можно командой:

scp /home/user/file.tgz root@123.123.123.123:/root

Чтобы скачать этот же файл с удаленного сервера:

scp root@123.123.123.123:/root/file.tgz /home/user

За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:

scp file1.tgz file2.tgz root@123.123.123.123:/root

Для копирования каталога потребуется задействовать модификатор команды r. Копируем локальный каталог /home/user/dir на удаленный сервер:

scp –r /home/user/dir root@123.123.123.123:/root

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

scp –P 10022 /home/user/file.tgz root@123.123.123.123:/root

Чтобы узнать какие еще модификаторы поддерживает команда, можно просто запустить scp без параметров и прочитать краткую справку.

Работаем на ОС семейства Windows

При использовании операционной системы Windows и Putty в качестве клиента, формат команды остается тот же, меняется только название исполняемого файл и используется синтаксис указания путей к файлам и каталогам Windows при указании источника или места назначения. Запускаем командную строку (cmd.exe) или PowerShell, переходим в каталог, где расположен файл pscp.exe вводим команду:

pscp.exe C:Tempfile.tgz root@123.123.123.123:/root

В случае запуска из какой-либо другой папки понадобится указать полный путь к pscp.exe. Если в каком-либо из путей присутствуют пробелы, используются двойные кавычки — “Путь к файлу”:

“C:Program FilesPuttypscp.exe” C:Tempfile.tgz root@123.123.123.123:/root

Как и в случае с scp, запустив pscp.exe без параметров, можно увидеть краткую справку по синтаксису команды и перечень поддерживаемых модификаторов.

Запуск команд на удаленном сервере через SSH-подключение

Протокол SSH, помимо работы в интерактивном режиме, поддерживает также разовый запуск команд или скриптов на удаленном сервере.

Работаем на ОС семейства Linux

ssh [пользователь]@[сервер] ‘[команда]’

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

Например, получим информацию об установленной на удаленном сервере операционной системе:

Чтобы запустить несколько команд за одно подключение, можно использовать символ “;” в качестве разделителя. Проверим сетевые настройки и активные сетевые подключения на удаленном сервере:

В результате локальный файл /home/user/myscript.sh исполнится на удаленном сервере.

Запуск команды SSH без параметров позволит ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов, которые позволяют расширить функциональность команды.

Работаем на ОС семейства Windows

Если мы подключаемся к удаленному серверу с компьютера, работающего на операционной системе Windows, то нам снова потребуется обратиться к терминальному клиенту Putty, в состав которого входит исполняемый файл plink.exe. Работать с этим файлом необходимо из командной строки (cmd.exe) или из PowerShell.

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

Проверим конфигурацию сетевых интерфейсов:

Как и при работе с командой SSH в Linux, plink.exe позволяет использовать “;” в качестве разделителя для запуска нескольких команд:

А запуск команд из локального файла можно реализовать с помощью дополнительного ключа m:

Источник

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

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

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

SFTP в Double Commander

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

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

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

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

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Прямо в 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 и ввожу туда адрес:

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

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

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

cURL и SCP

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

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

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

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

cURL и SFTP

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

Для листинга списка файлов файлов в директории /root/bin/ пользователя root на хосте 192.168.1.68, порт 22:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

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

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

Заключение

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

Источник

Подключение к Windows по SSH с помощью встроенного OpenSSH

Начиная с Windows 10 1809 и Windows Server 2019 в операционной системе имеется встроенный SSH сервер, основанный на OpenSSH. В этой статье мы покажем, как установить и настроить OpenSSH сервер в Windows 10 и подключиться к нему удаленно по защищенному SSH протоколу (ну прям как в Linux 🙂 ).

Установка сервера OpenSSH в Windows

Рассмотрим, как установить компонент OpenSSH Server в Windows 10 1903 (Windows Server 2019 все выполняется аналогично).

Пакет OpenSSH (как и RSAT) уже включен в данные версии Windows в виде Feature on Demand (FoD).

При наличии прямого Интернет-подключения вы можете установить сервер OpenSSH с помощью PowerShell

Или при помощи DISM:

dism /Online /Add-Capability /CapabilityName:OpenSSH.Server

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Настройка SSH сервера в Windows

После уставной сервера OpenSSH в Windows вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на 22 порту:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:

По умолчанию важным компоненты OpenSSH хранятся в следующих каталогах:

При установке OpenSSH сервера в системе создается новый локальный пользователь sshd.

Sshd_config: Конфигурационный файл сервера OpenSSH

Вы можете изменить настройки сервере OpenSSH в конфигурационном файле %programdata%\ssh\sshd_config.

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

Чтобы разрешить подключение только для определенной доменной группы:

Либо можете разрешить доступ для локальной группы:

Можно запретить вход под учетными записями с правами администратора, в этом случае для выполнения привилегированных действий в SSH сессии нужно делать runas.

Следующие директивы разрешают SSH доступ по ключам (доступ к Windows через SSH по ключам рассмотрим подробно в следующей статье) и по паролю:

Вы можете изменить порт, на котором принимает подключения OpenSSH в конфигурационном файле sshd_config в директиве Port.

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Подключение к Windows 10 через SSH

Теперь вы можете попробовать подключиться к своей Windows 10 через SSH клиент (я использую putty, но можно пользоваться встроенным ssh клиентом Windows).

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Нажимаем Да, и в открывшееся окне авторизуемся под пользователем Windows.

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

При успешном подключении запускается командная оболочка cmd.exe со строкой-приглашением.

В командной строке вы можете выполнять различные команды, запускать скрипты и программы.

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Я предпочитаю работать в командной строке PowerShell. Чтобы запустить интерпретатор PowerShell, выполните:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Чтобы изменить Shell по умолчанию в OpenSSH с cmd.exe на PowerShell, внесите изменение в реестр такой командой:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Осталось перезапустить SSH подключение и убедиться, что при подключении используется командный интерпретатор PowerShell (об этом свидетельствует приглашение PS C:\Users\admin> ).

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

В SSH сессии запустилась консоль PowerShell, в которой работают привычные функции: авто дополнение, раскраска модулем PSReadLine, история команд и т.д. Если текущий пользователь входит в группу локальных администраторов, то все команды в его сессии выполняются с повышенными правами даже при включенном UAC.

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

SSH (ч.5): Копирование файлов с помощью scp и sftp

Оглавление

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

Пакет OpenSSH также включает две программы, которые используют зашифрованный туннель SSH для копирования файлов по сети. Первая программа — scp («безопасное копирование») похожа на программу cp для копирования файлов.

Вторая программа для копирования файлов через SSH — это sftp. Как следует из её имени, она является безопасным заменителем ftp программ. sftp работает как и оригинальная ftp программа. Тем не менее вместо отправки данных в виде простого текста, она использует зашифрованный туннель SSH. Важным преимуществом sftp перед ftp является то, что для неё не требуется запущенный FTP сервер на удалённом хосте. Для неё требуется только SSH сервер. Это означает, что любая удалённая машина, на которой запущен SSH сервер, может также быть использована как FTP-подобный сервер.

Как пользоваться утилитой scp

Утилита scp очень схожа с программой cp, которая копирует файлы в пределах локального компьютера. Важно понять ключевую суть синтаксиса scp:

То есть всего имеется три элемента в команде. В качестве ИСХОДНОГО-ФАЙЛА может быть как файл на локальной системе, так и на удалённой. Аналогично, в качестве ПУНКТА-НАЗНАЧЕНИЯ может быть как файл на локальной системе, так и на удалённой.

Путь до локального файла указывается обычным способом — точно также, как и с программой cp.

Что касается файла на удалённой системе, то он может быть указан так:

Или в виде URI в форме:

Следовательно, если мы копируем файл с удалённой системы на локальную, общий вид команды такой:

В качестве ./ПУТЬ/В/ЛОКАЛЬНОЙ/СИСТЕМЕ можно указать просто . (точку) и тогда файл будет скопирован с текущим именем в текущий рабочий каталог.

Если мы копируем файл с локальной системы на удалённую, общий вид команды такой:

Синтаксис обращения к удалённому хосту схож с SSH: ПОЛЬЗОВАТЕЛЬ@ХОСТ, отличие только в том, что после двоеточия указывается путь до файла (или просто имя файла). При использовании URI, после двоеточия указывается порт (если он отличается от стандартного), а путь до файла указывается после слэша.

Рассмотрим пример выполнения команды на удалённой системы и скачаем этот файл на локальную систему:

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

В scp команде ИСХОДНЫЙ-ФАЙЛ обозначен как root@192.168.1.68:dirlist.txt — здесь до двоеточия идёт имя пользователя на удалённой системе и адрес хоста — та информация, которая необходима для подключения по SSH. Затем двоеточием отделён файл, который должен быть скачен.

ПУНКТ-НАЗНАЧЕНИЯ в этой команде обозначен как . (точка) — что означает текущую рабочую директорию (в локальной системе).

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

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

В команде отправки scp:

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

Программа scp умеет копировать между двумя удалёнными хостами. Если используется URI формат, порт можно указать только для цели если используется опция -3.

По умолчанию данные копируются напрямую между двумя удалёнными хостами. Если указать опцию -3, то данные между двумя хостами будут переданы через локальный хост. Эта опция отключает шкалу прогресса.

Как выгрузить на сервер или скачать с сервера папку

Для рекурсивного копирования целых директорий используется опция -r. Помните, что scp следует по символическим ссылкам, встречающимся при обходе дерева каталогов.

Как указать порт для scp

Указать другой порт, отличный от стандартного 22, можно с помощью опции -P ПОРТ. Обратите внимание, что эта опция написана заглавной ‘P’, поскольку -p уже занята для другой настройки (сохраняет время и режимы файла).

Как использовать другой файл настройки для scp и как указать файл ключей аутентификации

Программа scp работает вместе с ssh, то есть подключение происходит с помощью ssh и применяются все настройки этой программы. У ssh есть свои настройки по умолчанию, а также она считывает информацию из своих конфигурационных файлов. При желании, можно указать другой файл для использования, это делается опцией -F — она задаёт альтернативный конфигурационный файл пользователя для ssh. Эта опция напрямую передаётся в ssh.

Если настроен вход без пароля (по ключу), то программа ssh считывает приватный ключ в соответствии со своими настройками или из пути по умолчанию. С помощью опции -i можно выбрать другой файл с идентификатором (приватный ключ) для аутентификации по публичному ключу на сервере. Эта опция также напрямую передаётся в ssh.

Как ограничить скорость передачи данных в scp

По умолчанию передача файла происходит на максимально возможной скорости. Если по каким-то причинам нужно уменьшить лимит скорости, то используйте опцию -l, после которой укажите значение в Kbit/s.

Как сохранить метки времени при передаче по scp

С помощью опции -p (не путайте её с опцией -P, которая изменяет порт подключения) можно сохранить время модификации, время последнего доступа к файлу и режимы оригинального файла. Дополнительно о метках времени смотрите в статье «Время создания, доступа и изменения файла: что это, как их узнать и изменить. Как найти файлы по их времени создания, изменения или последнему открытию».

Отключение строгой проверки имён файлов

Опция -T отключает строгую проверку имени файла. По умолчанию при копировании файлов с удалённого хоста в локальный каталог scp проверяет, соответствуют ли полученные имена файлов тем, которые запрашиваются в командной строке, чтобы предотвратить отправку удаленным хостом неожиданных или нежелательных файлов. Из-за различий в том, как различные операционные системы и оболочки интерпретируют подстановочные символы имени файла, эти проверки могут привести к отклонению нужных файлов. Эта опция отключает эти проверки за счёт полного доверия, что сервер не будет отправлять неожиданные имена файлов.

Тихий режим

Опция -q включает тихий режим: отключает шкалу прогресса, а также предупреждения и диагностические сообщения от ssh.

Как пользоваться sftp

Адресат может быть указан как [ПОЛЬЗОВАТЕЛЬ@]ХОСТ[:ПУТЬ] или как URI в форме sftp://[ПОЛЬЗОВАТЕЛЬ@]ХОСТ[:ПОРТ][/ПУТЬ]

Если место назначения содержит ПУТЬ, который не является каталогом, sftp автоматически получит файлы, если используется неинтерактивный метод аутентификации; в противном случае это будет сделано после успешной интерактивной аутентификации.

Если путь не указан или путь является каталогом, sftp войдёт в систему на указанном хосте и перейдёт в интерактивный командный режим, зайдя в удалённый каталог, если он был указан. Дополнительная конечная косая черта может использоваться, чтобы принудительно интерпретировать путь как каталог.

Загрузить файл на сервер ssh с windows. Смотреть фото Загрузить файл на сервер ssh с windows. Смотреть картинку Загрузить файл на сервер ssh с windows. Картинка про Загрузить файл на сервер ssh с windows. Фото Загрузить файл на сервер ssh с windows

Интерактивные команды sftp

При входе в интерактивный режим, sftp понимает набор команд, схожих с командами для ftp(1). Команды не чувствительны к регистру. Пути и имена файлов, которые содержат пробелы, должны быть заключены в кавычки.

Любые специальные символы, содержащиеся внутри имён путей, которые распознаются в glob(3), должны быть экранированы обратным слэшом (‘\’).

cd [ПУТЬ]

Изменить удалённую директорию на ПУТЬ. Если ПУТЬ не указан, то директория будет сменена на ту, с которой началась текущая сессия.

chgrp [-h] ГРУППА ПУТЬ

Изменить группу файлов ПУТЬ на ГРУППА. Если указан флаг -h, тогда не будет производиться переход по символическим ссылкам. Пути могут содержать подстановочные символы (glob) и могут соответствовать нескольким файлам. ГРУППА должна быть числовым GID.

chmod [-h] РЕЖИМ ПУТЬ

Изменить права доступа ПУТЬ на РЕЖИМ. Если указан флаг -h, то не будет производиться переход по символическим ссылкам, пути могут содержать подстановочные символы (glob) и могут совпадать с несколькими файлами.

chown [-h] ВЛАДЕЛЕЦ ПУТЬ

Изменяет владельца файла ПУТЬ на ВЛАДЕЛЕЦ. Если указан флаг -h, то не будет производиться переход по символическим ссылкам, пути могут содержать подстановочные символы (glob) и могут совпадать с несколькими файлами. ВЛАДЕЛЕЦ должен быть указан цифровым UID.

df [-hi] [path]

Показать информацию об использовании для файловой системы, содержащей текущий каталог (или путь, если указан). Если указан флаг -h, информация о ёмкости будет отображаться с использованием «удобочитаемых» суффиксов. Флаг -i запрашивает отображение информации об узле в дополнение к информации о ёмкости. Эта команда поддерживается только на серверах, которые реализуют расширение «statvfs@openssh.com».

exit

get [-afPpr] УДАЛЁННЫЙ-ПУТЬ [ЛОКАЛЬНЫЙ-ПУТЬ]

Получает УДАЛЁННЫЙ-ПУТЬ и сохраняет этот файл на локальной машине. Если имя ЛОКАЛЬНЫЙ-ПУТЬ не указано, то файлу сохраняется его прежнее имя, которое он имел на удалённой машине. УДАЛЁННЫЙ-ПУТЬ может содержать подстановочные символы (glob) и может совпадать с несколькими файлами. Если это так и указан ЛОКАЛЬНЫЙ-ПУТЬ, то ЛОКАЛЬНЫЙ-ПУТЬ должен быть директорией.

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

Если указан флаг -f, тогда после завершения передачи файла будет вызвана fsync(2) для записи файла на диск (flush the file to disk) — имеется ввиду, что файл не просто будет помещён в кэш и поставлен в очередь на запись, а действительно в этот момент будет записан на физический диск.

Если указан флаг -P или флаг -p, тогда также полностью будут скопированы права доступа к файлу и метки времени.

Если указан флаг -r, тогда директории будут скопированы рекурсивно. Обратите внимание, что sftp не следует по символическим ссылкам, когда выполняет рекурсивную передачу файлов.

help

Показывает текст помощи по использованию программой.

lcd [ПУТЬ]

Меняет рабочую директорию на локальной машине (а не на удалённой!) на ПУТЬ. Если ПУТЬ не указан, то меняет директорию на домашнюю папку локального пользователя.

lls [ОПЦИИ-ls [ПУТЬ]]

Показывает листинг локальной директории указанную как ПУТЬ или текущей рабочей директории, если ПУТЬ не указан. ОПЦИИ-ls могут содержать любые флаги, которые поддерживаются командой ls на локальной системе. ПУТЬ может содержать подстановочные символы (glob) и может соответствовать нескольким файлам.

lmkdir ПУТЬ

Создаёт директорию ПУТЬ на локальной системе.

ln [-s] СТАРЫЙ-ПУТЬ НОВЫЙ-ПУТЬ

lpwd

Печатает текущую рабочую директорию на локальной машине.

ls [-1afhlnrSt] [ПУТЬ]

Показывает список файлов удалённой директории указанного ПУТИ или текущей директории, если ПУТЬ не установлен. ПУТЬ может содержать подстановочные символы (glob) и может совпадать с несколькими файлами.

Следующие флаги распознаются командой ls и соответственно меняют её поведение:

Информация выводится в один столбик.

Добавляет в список файлы, которые начинаются на точку (‘.’).

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

Когда используется с опцией длинного формата, использует суффиксы единиц: Байт, Килобайт, Мегабайт, Гигабайт, Терабайт, Петабайт и Эксабайт чтобы уменьшить количество цифр до четырёх или менее, используя ступени 2 для размеров (K=1024, M=1048576 и т.д.).

Показывает дополнительные подробности, включая информацию о разрешениях и владельце.

Создаёт длинный список с информацией о пользователях и группах в числовом формате.

Обратный порядок сортировки списка.

Сортирует список по размеру файла.

Сортирует список по времени последней модификации.

lumask umask

Устанавливает локальную umask на umask.

mkdir ПУТЬ

Создаёт удалённую директорию, определённую как ПУТЬ.

progress

Переключает отображение индикатора прогресса.

put [-afPpr] ЛОКАЛЬНЫЙ-ПУТЬ [УДАЛЁННЫЙ-ПУТЬ]

Выгружает ЛОКАЛЬНЫЙ-ПУТЬ сохраняет на удалённой машине. Если имя УДАЛЁННЫЙ-ПУТЬ не указано, то файлам даётся такое же имя, как и на локальной машине. ЛОКАЛЬНЫЙ-ПУТЬ может содержать подстановочные символы (glob) и может совпадать с несколькими файлами. Если это так и указан УДАЛЁННЫЙ-ПУТЬ, то УДАЛЁННЫЙ-ПУТЬ должен быть директорией.

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

Если указан флаг -f, тогда после завершения передачи файла будет вызвана fsync(2) для записи файла на диск (flush the file to disk) — имеется ввиду, что файл не просто будет помещён в кэш и поставлен в очередь на запись, а действительно в этот момент будет записан на физический диск. Обратите внимание, что это поддерживается только серверами, где реализовано расширение «fsync@openssh.com».

Если указан флаг -P или флаг -p, тогда также полностью будут скопированы права доступа к файлу и метки времени.

Если указан флаг -r, тогда директории будут скопированы рекурсивно. Обратите внимание, что sftp не следует по символическим ссылкам, когда выполняет рекурсивную передачу файлов.

Показать удалённую рабочую директорию.

quit

reget [-Ppr] УДАЛЁННЫЙ-ПУТЬ [ЛОКАЛЬНЫЙ-ПУТЬ]

Возобновить загрузку УДАЛЁННЫЙ-ПУТЬ. Эквивалент команды get с установленным флагом -a.

reput [-Ppr] [ЛОКАЛЬНЫЙ-ПУТЬ] УДАЛЁННЫЙ-ПУТЬ

Возобновить выгрузку [ЛОКАЛЬНЫЙ-ПУТЬ]. Эквивалент команды put с установленным флагом -a.

rename СТАРЫЙ-ПУТЬ НОВЫЙ-ПУТЬ

Переименовать удалённый файл со СТАРЫЙ-ПУТЬ на НОВЫЙ-ПУТЬ.

rm ПУТЬ

Удалить удалённый файл указанный как ПУТЬ.

rmdir ПУТЬ

Удалить удалённую директорию указанную как ПУТЬ.

symlink СТАРЫЙ-ПУТЬ НОВЫЙ-ПУТЬ

Создать символическую ссылку из СТАРЫЙ-ПУТЬ в НОВЫЙ-ПУТЬ.

version

Показать версию sftp протокола.

!КОМАНДА

Выполнить КОМАНДУ в локальном шелле.

Символ экранирования для передачи в локальную оболочку.

Опции sftp

Следующие опции указываются в строке команды запуска клиента sftp. Они оказывают влияние как на запущенный sftp в интерактивной сессии, так и без интерактивного режима.

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

-B РАЗМЕР_БУФЕРА

Устанавливает размер буфера, который использует sftp при передаче файлов. Большие буферы требуют меньше циклов обработки за счёт более высокого потребления памяти. Значение по умолчанию равно 32768 байтам.

-b ПАКЕТНЫЙ_ФАЙЛ

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

ПАКЕТНЫЙ_ФАЙЛ в виде ‘’ может использоваться для обозначения стандартного ввода. Работа sftp будет прекращена, если какая-либо из следующих команд потерпит неудачу: get, put, reget, reput, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd, df, symlink и lmkdir.

Завершение в случае ошибки может быть подавлено для каждой команды в отдельности путём добавления к команде префикса с символом «» (например, -rm /tmp/blah*). Вывод команд может быть подавлен, если перед ней поставить символ ‘@’. Эти два префикса могут сочетаться в любом порядке, например, -@ls /bsd.

Включить сжатие (через флаг -C в ssh).

-D sftp_server_path

Подключиться напрямую к локальному sftp серверу (а не через ssh). Эта опция может быть полезной при отладке клиента и сервера.

-F КОНФИГУРАЦИЯ_SSH

Указывает альтернативный пользовательский конфигурационный файл для ssh. Эта опция напрямую отправляется в ssh.

Требует, чтобы файлы были записаны на диск сразу после передачи. При загрузке файлов эта функция включается только в том случае, если на сервере реализовано расширение «fsync@openssh.com».

-i ФАЙЛ_ИДЕНТИФИКАЦИИ

Выбирает файл, из которого читается идентификатор (закрытый ключ) для аутентификации с открытым ключом. Эта опция напрямую передаётся в ssh.

-l ЛИМИТ

Ограничивает используемую пропускную способность, указанную в Кбит/с.

-P ПОРТ

Указывает порт для подключения на удаленном хосте.

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

Тихий режим: отключает индикатор хода выполнения, а также предупреждающие и диагностические сообщения от ssh.

-R КОЛИЧЕСТВО_ЗАПРОСОВ

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

Рекурсивно копировать целые каталоги при загрузке и скачивании. Обратите внимание, что sftp не следует по символическим ссылкам, встречающимся в обходе дерева.

Поднимите уровень вербальности. Эта опция также передаётся в ssh.

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

SCP и SFTP являются не только утилитами, но и протоколами. То есть другие программы могут поддерживать работу с ними и использоваться в качестве удобного графического интерфейса. Благодаря этому вы сможете управлять файлами на сервере, например, через FileZilla или привычные файловые менеджеры. Подробности смотрите в статье «Как скачивать файлы по SSH».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *