Команды командной строки Winscp

Обновлено: 29.06.2024

WinSCP — это популярный клиент для передачи файлов для Windows. Первоначально он был разработан Мартином Прикрылом. Он также предоставляет ограниченные возможности удаленного выполнения команд и сценариев. Эмуляция терминала не поддерживается, но ее можно использовать вместе с PuTTY.

Содержание

Загрузка WinSCP для Windows

Другие клиенты SSH можно найти здесь.

WinSCP для Mac

WinSCP недоступен для Mac OS. Однако доступны и другие бесплатные альтернативы. Например, довольно популярными альтернативами являются Cyberduck и FileZilla.

Основные особенности

К основным функциям WinSCP относятся:

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

Работает в Microsoft Windows

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

Поддержка протоколов SFTP, FTP, FTPS и WebDAV

Загрузка, скачивание, переименование, удаление, создание файлов и каталогов и управление их разрешениями.

Язык сценариев для автоматизации задач передачи файлов

Двунаправленная синхронизация каталогов

Простой встроенный текстовый редактор для редактирования скриптов

Возможность поделиться файлами профиля сеанса с PuTTY

Поддерживает аутентификацию с интерактивной клавиатурой, аутентификацию с открытым ключом и аутентификацию GSSAPI. Поддерживается единый вход Windows.

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

Возможность шифрования информации об удаленных сайтах с помощью мастер-пароля. Однако этот параметр доступен только в интерактивном режиме и не может использоваться со сценариями.

Обычный установщик и альтернативы .EXE ("переносимым исполняемым файлам")

Данные конфигурации могут храниться либо в реестре Windows, либо в файлах конфигурации ( .INI , для использования с переносимыми исполняемыми файлами).

Установка

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

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

Программное обеспечение также можно запускать непосредственно из исполняемого файла без его установки. Это называется портативным режимом. Это позволяет запускать программное обеспечение с USB-накопителей, что может обеспечить дополнительную безопасность при использовании общедоступных компьютеров. Однако вредоносное ПО, работающее на компьютере, может легко повредить программное обеспечение на USB-накопителе или украсть ключи шифрования из памяти приложения. Таким образом, дополнительная безопасность в значительной степени иллюзорна.

Переносимый исполняемый файл можно обновить, просто заменив исполняемый файл более новым.

Удаление

Чтобы удалить приложение, выберите Панель управления > Программы > Удалить программу. В Windows 10 выберите «Настройки» > «Система» > «Приложения и функции» .

Сводка сценариев WinSCP

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

call — выполняет произвольную команду на сервере. Команды, требующие ввода, не поддерживаются.

cd — изменяет удаленный рабочий каталог

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

chmod - изменяет права доступа к удаленным файлам

закрыть — закрывает сеанс

echo — выводит сообщение на вывод скрипта

выход - закрывает все сеансы и завершает работу программы

get — загружает один или несколько файлов из удаленного каталога

help — предоставляет справку по командам

keepuptodate — обновляет удаленный каталог, чтобы отразить локальные изменения

lcs — изменяет локальный каталог

lls — список файлов в локальном каталоге

ln — создает символическую ссылку на удаленном хосте

lpwd — отображает текущий локальный каталог

mkdir — создает новый каталог на удаленном хосте

mv — переименовывает или перемещает файл на удаленный хост

open — открывает новое соединение с сервером. Для протокола SFTP пароль может быть жестко запрограммирован в команде или может использоваться аутентификация с открытым ключом. Для интерактивных сеансов пользователь может ввести пароль.

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

put — загружает файлы в удаленный каталог

pwd — отображает текущий удаленный рабочий каталог

rmdir — удаляет каталог с удаленного хоста

session — выбирает, какой сеанс использовать для следующих команд

stat — получает атрибуты файла с удаленного хоста

synchronize — синхронизирует локальный каталог с удаленным каталогом, обновляя измененные файлы в любом направлении

Режим командной строки WinSCP

Хотя приложение не имеет полноценного эмулятора терминала, оно поддерживает режим командной строки для удаленного выполнения команд. Режим командной строки не поддерживает команды, требующие ввода с клавиатуры.

Можно использовать приложение вместе с PuTTY, чтобы иметь доступ ко всем возможностям терминала.

Первый синтаксис открывает сайт. Чтобы открыть сайт, хранящийся в папке, используйте синтаксис пути «папка/сайт». Вы также можете открыть рабочую область или все сайты в папке сайта.

Второй создает сеанс, указанный URL-адресом сеанса и, при необходимости, начальным удаленным путем. Если удаленный путь не заканчивается косой чертой ( / ), он рассматривается как путь к файлу (или даже каталогу), который необходимо загрузить.

Параметр /sessionname указывает пользовательское имя сеанса, которое будет использоваться вместо автоматически сгенерированного имени в формате username@hostname или для переопределения имени сохраненного сайта.

Если экземпляр WinSCP уже запущен, сеансы открываются в существующем экземпляре. Чтобы принудительно открыть сеанс в новом экземпляре WinSCP, используйте параметр /newinstance.

Параметр /privatekey указывает локальный путь к файлу закрытого ключа SSH. Если файл ключа зашифрован, используйте ключевую фразу /passphrase, чтобы указать его парольную фразу.

Вы можете использовать параметры /username и /password в качестве альтернативного способа указания учетных данных. Учетные данные обычно являются частью URL-адреса сеанса. Преимущество использования этих переключателей заключается в том, что не нужно кодировать специальные символы URL-адреса.

Параметр /clientcert указывает локальный путь к сертификату клиента FTPS или WebDAVS TLS/SSL. Если сертификат зашифрован, используйте /passphrase, чтобы указать его парольную фразу.

Если сертификат TLS/SSL сервера FTPS или WebDAVS не является доверенным (обычно это самозаверяющий сертификат), используйте параметр /certificate, чтобы указать отпечаток недоверенного сертификата. Это заставляет WinSCP доверять сертификату. Несколько альтернативных отпечатков могут быть разделены точкой с запятой.

Параметр /passive включает пассивный (=on) или активный (=off) режим передачи (только протокол FTP).

Параметры /implicit и /explicit включают соответствующий метод вызова FTPS.

Параметр /timeout указывает время ожидания ответа сервера.

Параметр /rawsettings позволяет настроить любые параметры сайта, используя необработанный формат, как в INI-файле. Например. чтобы включить сжатие SSH и переадресацию агента, используйте /rawsettings Compression=1 AgentFwd=1 . Параметр должен идти после URL-адреса сеанса (если есть).

При использовании сценариев вместо этого используйте команду open (и ее переключатели).

Ведение журнала

С помощью параметра /log вы можете включить ведение журнала сеанса в файл, указанный локальным путем. В пути вы можете использовать те же шаблоны, что и в настройках ведения журнала.

Используйте параметр /loglevel, чтобы изменить уровень ведения журнала. Значение может быть в диапазоне от -1 до 2 (для журналов Уменьшенный, Обычный, Отладка 1 и Отладка 2). уровни соответственно). Добавьте дополнительный *, чтобы включить ведение журнала паролей (например, /loglevel=2* ).1

Используйте параметр /logsize для настройки ограничения размера файла журнала и ротации файлов журнала. Укажите максимальный размер в байтах, опционально в единицах K , M или G. При желании вы можете ограничить количество архивных файлов журнала, используя префикс count*. Например, /logsize=5*10M ограничивает размер файла журнала до 10 МБ и позволяет хранить до 5 архивных журналов.

С помощью параметра /xmllog вы можете включить ведение журнала XML в файл, указанный локальным путем.2 В пути вы можете использовать те же шаблоны, что и в настройках ведения журнала.

Используйте параметр /xmlgroups вместе с /xmllog , чтобы сгруппировать все элементы журнала XML, принадлежащие одной и той же команде, в элементе родительской группы.

Консоль/режим сценариев

Чтобы запустить пакетный скрипт, либо передайте файл скрипта, используя параметр /script, либо укажите команды непосредственно в командной строке, используя /command . В последнем случае каждый следующий параметр рассматривается как одна команда. См. раздел о синтаксисе и примеры ниже, чтобы узнать, как работать с пробелами и двойными кавычками.

Если используются оба параметра /script и /command, сначала выполняются команды из файла сценария. Когда последняя команда не exit , следует обычный непакетный режим.

Используйте параметр /parameter, чтобы указать список аргументов, которые будут переданы сценарию. Рекомендуется экранировать аргументы с помощью // switch.

В winscp.exe, если параметр /console не используется вместе с /script или /command , скрипт/команда выполняется без визуальной обратной связи (окно).

Операции

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

Используйте /edit, чтобы открыть удаленный файл во внутреннем редакторе WinSCP.

Используйте /browse, чтобы выбрать указанный файл на (обе) файловых панелях. Переключатель также можно использовать вместе с URL-адресом файла для того же эффекта, переопределяя действие загрузки по умолчанию.

С параметром /synchronize или /keepuptodate WinSCP выполняет команды Синхронизировать или Обновлять удаленный каталог соответственно для указанного сеанса и каталогов. Сначала отображается диалоговое окно для установки параметров.

С параметром /upload WinSCP загружает указанные файлы в начальный удаленный каталог сеанса.3 Сначала отображается диалоговое окно для установки параметров.

Используйте параметр /defaults вместе с /upload , /synchronize или /keepuptodate, чтобы пропустить диалоговое окно настроек и сразу начать операцию с настройками по умолчанию. В качестве альтернативы вы можете указать количество секунд, чтобы на самом деле отображались диалоговые окна настроек, но они автоматически отправлялись по истечении указанного времени.

Используйте параметр /refresh для перезагрузки удаленной панели всех запущенных экземпляров WinSCP. Если сеанс указан в командной строке, обновляются только экземпляры, для которых этот сеанс является активным. Если после /refresh указан путь, обновляется только этот каталог.

Рекомендуется экранировать аргументы с помощью // switch.

Конфигурация

С помощью параметра /ini вы можете указать локальный путь к INI-файлу конфигурации. Он эффективно отключает использование реестра в качестве хранилища конфигурации. Если файл не существует, будет использоваться конфигурация по умолчанию и файл будет создан.

Используйте nul вместо пути, чтобы заставить WinSCP запускаться с конфигурацией по умолчанию и не сохранять конфигурацию при выходе.

С помощью параметра /rawconfig вы можете установить любые параметры конфигурации, используя необработанный формат, как в файле INI. Например. для настройки внешнего IP-адреса используйте /rawconfig Interface\ExternalIpAddress=198.51.100.10 . Параметр должен идти после URL-адреса сеанса (если есть). Установленная таким образом конфигурация сохраняется.

С помощью /rawtransfersettings вы можете установить любые параметры передачи, используя необработанный формат, как в файле INI. Например. чтобы включить сохранение временных меток каталога, используйте /rawtransfersettings PreserveTimeDirs=1 . Установленная таким образом конфигурация сохраняется. В сценариях лучше использовать переключатель -rawtransfersettings отдельных команд сценария, таких как get , put и т. д.

Массовая модификация сайтов

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

Например, чтобы настроить прокси для всех сайтов в папке «клиенты», используйте:

Преобразование и изменение закрытого ключа

Используйте переключатель /keygen, чтобы преобразовать закрытые ключи из других форматов в формат PuTTY .ppk или изменить парольную фразу или комментарий.

При преобразовании ключа из другого формата необходимо указать путь к выходному ключу с помощью переключателя /output. При изменении ключа PuTTY существующий файл перезаписывается, если параметр /output не указан.

Используйте параметр /changepassphrase, чтобы изменить кодовую фразу ключа.

Используйте переключатель /comment, чтобы изменить ключевой комментарий.

Например, чтобы преобразовать ключ mykey.pem из формата OpenSSH в mykey.ppk в формате PuTTY и установить его комментарий:

Чтобы изменить кодовую фразу существующего файла mykey.ppk:

Для совместимости с *nix puttygen ключи -o , -P и -C понимаются как псевдонимы /output , /changepassphrase и /comment соответственно. Итак, для функций, поддерживаемых WinSCP, вы можете использовать те же аргументы, что и для puttygen, только с префиксом /keygen:

Вспомогательный

При запуске с параметром /update WinSCP проверяет только свои обновления.

Параметр /info перечисляет поддерживаемые алгоритмы SSH и TLS/SSL.

Параметр /help показывает использование (обзор аналогичен этому).

Синтаксис

Параметры командной строки, содержащие пробелы, должны быть заключены в двойные кавычки:

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

При выполнении такой команды из PowerShell вам дополнительно необходимо экранировать двойные внутренние двойные кавычки с помощью ` (обратная кавычка), чтобы PowerShell не интерпретировал их самостоятельно:4

Для отладки цитирования включите ведение журнала сеанса на уровне Отладка 1 ( /loglevel=1 ). Журнал покажет, как WinSCP понимает вашу командную строку.

Аргумент, начинающийся с косой черты, считается переключателем. Чтобы передать параметр, который сам начинается с косой черты в своем синтаксисе (т. е. удаленный путь, такой как /root), используйте специальный переключатель // (две косые черты) перед аргументом. Переключатель // означает, что все следующие аргументы не являются переключателями. Пример:

Исполняемые файлы

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

Запуск из Bash

При запуске WinSCP из оболочки, где /switch интерпретируется как путь, например Git Bash, используйте тире (-) вместо косой черты (/) для переключателей. Например:

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


Использование сценариев

При запуске команд, указанных с помощью /script или /command , неявно используется пакетный режим, а подтверждения перезаписи отключены. В интерактивном режиме сценариев пользователю предлагается так же, как и в режиме графического интерфейса. Чтобы принудительно включить пакетный режим (на все запросы автоматически дается отрицательный ответ), используйте параметр команды batch abort. Для пакетного режима рекомендуется отключить подтверждения с помощью опции подтверждения отключения, чтобы разрешить перезапись (в противном случае на запрос подтверждения перезаписи будет получен отрицательный ответ, что сделает перезапись невозможной).

Можно одновременно открыть несколько сеансов. Используйте команду сеанса для переключения между ними.

Обратите внимание, что для первого подключения к SSH-серверу требуется проверка ключа хоста. Также первое подключение к хосту FTPS или WebDAVS с сертификатом, подписанным ненадежным центром, требует проверки сертификата.

Проверка результатов

Исполняемые файлы WinSCP возвращают код выхода 1, когда любая команда прерывается из-за ошибки или на любой запрос отвечает Прервать (даже автоматически в пакетном режиме). В противном случае возвращается код выхода 0.

Для дальнейшего анализа результатов операций по сценарию полезно вести журнал XML.

Синтаксис команд

Все команды WinSCP имеют синтаксис:

Параметры команды с пробелами

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

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

Для отладки цитирования включите ведение журнала сеанса на уровне Отладка 1 ( /loglevel=1 ). Журнал покажет, как WinSCP понимает как вашу командную строку, так и отдельные команды сценариев.

Переменные среды

В командах можно использовать переменные среды с синтаксисом %NAME% :1

Обратите внимание, что раскрытие переменных отличается от раскрытия в пакетных файлах Windows:

  • Вы не можете использовать какой-либо синтаксис обработки строк.
  • Вы не можете использовать динамические/псевдопеременные среды, такие как %DATE% или %RANDOM% .
  • Ссылки на неопределенные переменные сохраняются (не удаляются).
  • Вы можете использовать %WINSCP_PATH% для ссылки на путь к исполняемому файлу WinSCP.

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

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

Аргументы сценария

Вы можете ссылаться на аргументы скрипта (переданные в командной строке с использованием параметра /parameter ), используя синтаксис %N% , где N – порядковый номер аргумента: 1

Чувствительность к регистру в именах файлов

Обратите внимание, что WinSCP обрабатывает имена файлов с учетом регистра. Поэтому, даже если ваш сервер обрабатывает имена файлов без учета регистра, убедитесь, что вы указали регистр правильно.2

Комментарии

Команды

Реализованы следующие команды.

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

Команда Описание
call Выполняет произвольную удаленную команду оболочки
cd Изменяет удаленный рабочий каталог
контрольная сумма Вычисляет контрольную сумму удаленного файл
chmod Изменяет права доступа к удаленному файлу
закрыть Закрывает сеанс
cp Дублирует удаленный файл
echo Печать сообщение на выходе скрипта
exit Закрывает все сеансы и завершает работу программы
get Загружает файл из удаленного каталога в локальный каталог
help Показывает справку
keepuptodate Постоянно отображает изменения в локальном каталоге на удаленном
LCD Изменяет локальный рабочий каталог
lls Выводит содержимое локального каталога
ln Создает удаленный символ bolic link
lpwd Выводит локальный рабочий каталог
ls Выводит содержимое удаленного каталога
mkdir Создает удаленный каталог
mv Перемещает или переименовывает удаленный файл
открыть Подключается к серверу
опция Устанавливает или показывает значение параметров скрипта
put Загружает файл из локального каталога в удаленный каталог
pwd Печатает удаленный рабочий каталог
rm Удаляет удаленный файл
rmdir Удаляет удаленный каталог
сеанс Выводит список подключенных сеансов или выбирает активный сеанс
stat Получает атрибуты удаленного файла
synchronize Синхронизирует удаленный каталог с местный

Инструмент интерфейса консоли

Проверка ключа хоста или сертификата в скрипте

Первое подключение к SSH-серверу требует проверки ключа хоста. Чтобы автоматизировать проверку в сценарии, используйте переключатель -hostkey команды open, чтобы автоматически принять ожидаемый ключ хоста.

Отпечаток ключа можно найти в диалоговом окне информации о сервере и протоколе. Вы также можете скопировать отпечаток ключа в буфер обмена из запроса подтверждения при первом (интерактивном) соединении с помощью команды Копировать отпечатки ключа в буфер обмена (в сценарии используйте отпечаток SHA-256 только для ключа хоста). . Подробнее о получении отпечатка ключа хоста.

Сертификат TLS/SSL FTPS/WebDAVS, подписанный ненадежным центром, также может нуждаться в проверке. Чтобы автоматизировать проверку в сценарии, используйте переключатель -certificate команды open, чтобы автоматически принять ожидаемый сертификат.

Запуск скрипта под другой учетной записью (например, с помощью планировщика)

Если вы собираетесь запускать сценарий под другой учетной записью (например, с помощью планировщика заданий Windows), убедитесь, что сценарий не использует параметры конфигурации, которые могут отличаться для другой учетной записи. При использовании реестра в качестве хранилища конфигурации настройки доступны только для вашей учетной записи Windows. В идеале убедитесь, что сценарий не зависит от какой-либо внешней конфигурации, чтобы сделать его полностью переносимым. Обратите внимание, что конфигурация также включает проверенные ключи хоста SSH и сертификаты FTPS/WebDAVS TLS/SSL.

Совместное использование конфигурации в графическом режиме

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

Недостаток заключается в том, что изменение конфигурации в графическом режиме может привести к поломке вашего скрипта (распространенный пример — включение параметра Только существующие файлы для синхронизации). Кроме того, сценарий нельзя перенести на другие машины, если он зависит от внешней конфигурации.

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

Лучший способ сделать это — настроить все необходимые параметры, используя только команды сценария (команда option, переключатели других команд, URL-адрес сеанса), или, если такая команда недоступна, используя необработанные настройки сайта и необработанную конфигурацию. Наконец, принудительно запустите режим сценариев с конфигурацией по умолчанию, используя параметр командной строки /ini=nul.

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

Создание скрипта

Пример

Сохраните скрипт в файле example.txt. Чтобы выполнить файл сценария, используйте следующую команду.

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

В пакетном файле Windows вы можете использовать ^, чтобы разделить слишком длинную командную строку на отдельные строки, экранировав следующий символ новой строки:

WinSCP — это графическая утилита для безопасной передачи файлов. Но у него больше возможностей, чем у графического интерфейса. Командная строка WinSCP также поможет вам управлять передачей файлов и автоматизировать ее с консоли!

Чтобы узнать все тонкости графического интерфейса WinSCP, ознакомьтесь с дополняющим пост «Графический интерфейс WinSCP: полное руководство».

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

Оглавление

Предпосылки

  • ПК с Windows XP+ — в этом руководстве будет использоваться Windows 10 Enterprise.
  • Удаленный хост Linux. В этом руководстве будет использоваться компьютер Ubuntu 18.04.5 LTS.
  • Учетная запись пользователя на удаленном узле SSH с разрешениями sudo.

Создание URL-адреса сеанса

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

Атрибуты подключения

Атрибуты соединения

Чтобы сообщить командной строке WinSCP, куда подключаться, необходимо указать строку, называемую URL-адресом сеанса. Этот URL-адрес сеанса представляет собой комбинацию всех атрибутов подключения, которые вы определили в графическом интерфейсе выше.

URL-адрес сеанса в простейшем случае определяется с помощью схемы:

Например, если вы хотите подключиться к удаленному хосту 1.1.1.1 с пользователем adam и паролем pw по протоколу SFTP с помощью WinSCP, ваш URL-адрес сеанса будет выглядеть следующим образом:

Если вы уже создали сайт WinSCP, вы можете найти URL-адрес сеанса сайта, открыв графический интерфейс WinSCP, щелкнув меню «Сеанс», щелкнув сайт правой кнопкой мыши и выбрав «Создать URL-адрес/код сеанса».

WinSCP site

Сайт WinSCP

В приведенном выше диалоговом окне URL-адрес сеанса у вас есть различные параметры для настройки URL-адреса сеанса, которые определяют, как WinSCP подключается к удаленному хосту.

  • Исходный каталог — удаленный каталог, который WinSCP откроет при первом подключении.
  • Ключ хоста SSH — существующий ключ SSH для аутентификации на удаленном хосте.
  • Специфический для WinSCP — генерирует URL-адрес сеанса, специфичный для WinSCP, например WinSCP-sftp:// или winscp->. URL-адрес, специфичный для WinSCP, полезен, когда вам нужен WinSCP только для понимания URL-адреса. Например, если вы сгенерируете URL-адрес сеанса для FTP, вы будете конкурировать со своим веб-браузером по умолчанию, если вы нажмете на ссылку. – Этот параметр иногда используется с параметром WinSCP, чтобы предотвратить конфликты других приложений при доступе к URL-адресу.

Синтаксис URL-адреса сеанса со всеми включенными параметрами должен выглядеть следующим образом.

Сгенерировать URL/код сеанса.

Создать URL/код сеанса.

Генерация кода подключения сеанса

После создания URL-адреса сеанса WinSCP также предоставляет примеры кода на вкладке «Сценарий» в окне «Создать URL-адрес/код сеанса». Выбрав тип кода:

  • Файл сценария
  • Пакетный файл
  • Командная строка
  • Скрипт PowerShell

WinSCP создаст синтаксис для подключения к удаленному хосту с помощью WinSCP в любом из этих типов сценариев.

Generating Session Connection Code

Создание кода подключения сеанса

Вкладка кода сборки NET

Вкладка кода сборки NET

Winscp.exe на самом деле та же утилита, которая используется для вызова графического интерфейса, но с ее помощью также можно выполнять некоторые задачи из командной строки. Но вы можете выполнять с ним несколько простых команд в командной строке, если укажете несколько параметров.

Winscp.exe — это всего лишь способ командной строки для взаимодействия с различными функциями графического интерфейса WinSCP.

Независимо от того, какой инструмент вы выберете, вы должны открыть командную строку (либо cmd.exe, либо PowerShell) и перейти в каталог установки WinSCP.

Теперь, когда вы находитесь в командной строке, давайте начнем!

WinSCP.exe: подключение к удаленным хостам с URL-адресами сеанса

Самый простой способ подключиться к удаленному узлу с помощью WinSCP — запустить winscp.exe с URL-адресом сеанса в качестве параметра. В приведенном ниже примере WinSCP подключится к хосту 54.179.19.216, используя имя пользователя и автоматизацию и пароль автоматизации через sftp. При подключении он попадет в каталог /tmp.

Вместо использования пароля вы также можете подключиться к удаленному хосту с помощью закрытого ключа, указав параметр /privatekey. Использование закрытого ключа более безопасно, чем использование простого пароля, но это выходит за рамки данного руководства.

Ниже вы можете увидеть пример подключения к хосту 54.179.19.216 с использованием имени пользователя и автоматизации через scp с закрытым ключом mykey.ppk .

WinSCP.exe: загрузка файлов без сайта

Используя winscp.exe в командной строке, вы можете передавать файлы с помощью быстрого специального соединения или вызывать предварительно созданный сайт WinSCP. Давайте сначала загрузим файл без использования сайта. Для демонстрации, возможно, вы захотите загрузить все файлы в каталог /tmp удаленного хоста 54.179.19.216 с помощью SFTP.

<р>1. Сначала сгенерируйте URL-адрес сеанса. В приведенном ниже примере показано подключение к удаленному хосту с именем пользователя и паролем, автоматическим переходом в удаленный каталог /tmp.

<р>2. Затем запустите winscp.exe, чтобы подключиться к удаленному хосту и открыть графическое диалоговое окно параметров передачи WinSCP. Вы увидите, что локальный каталог по умолчанию будет ~\Documents, как показано ниже.

WinSCP по умолчанию также использует шаблон \\*.*, означающий загрузку всех файлов с любым именем (*) и любым расширением файла (*).

<р>3. Нажмите OK, чтобы начать передачу. WinSCP попытается загрузить все файлы из удаленного каталога /tmp через SFTP в локальный каталог, выбранный во всплывающем окне.

Загрузка файлов без сайта

Скачивание файлов без сайта

WinSCP.exe: загрузка файлов без сайта

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

Загрузка файлов с помощью winscp.exe без сайта мало чем отличается от загрузки файлов. Вы по-прежнему должны указать URL-адрес сеанса. Но на этот раз вы также должны использовать переключатель /upload, за которым следует имя папки или файла, как показано ниже.

После того, как вы запустите приведенную выше команду winscp.exe, WinSCP откроет графическое диалоговое окно загрузки WinSCP, как показано ниже, указывающее, что все файлы, определенные с помощью /upload ( *.* ), будут загружены в каталог /tmp удаленного хоста.

Загрузка файлов без сайта

Загрузка файлов без сайта

Войдя на удаленный хост с помощью SSH-клиента и запустив pwd для проверки файла и ls -lh для просмотра списка всех файлов в каталоге, вы увидите, что файл успешно загружен.

Файл успешно загружен на удаленный компьютер

Файл успешно загружен на удаленный компьютер

WinSCP.exe: загрузка файлов с помощью сайта

В предыдущих примерах нужно было указать URL-адрес сеанса. URL-адреса сеанса полезны, когда у вас нет сайта WinSCP для ссылки, содержащего все параметры подключения. Если вы какое-то время используете WinSCP, скорее всего, у вас есть несколько созданных сайтов.

Используя winscp.exe, вы можете использовать эти сайты, созданные с помощью графического интерфейса, и использовать их для подключения к удаленному хосту, избавляя себя от необходимости помнить, как создать URL-адрес сеанса!

Чтобы найти сохраненные сайты в WinSCP, выберите меню «Сеанс» —> «Сайты» —> «Диспетчер сайтов».

Чтобы продемонстрировать использование сайтов с помощью winscp.exe, сначала рассмотрим загрузку файлов с помощью сайта.

<р>1. Сначала подключитесь к удаленному хосту, определенному на сайте. В приведенном ниже примере уже создан сайт WinSCP под названием Adamsite .

Затем WinSCP отобразит уведомление о состоянии, как показано ниже.

Подключение к удаленному компьютеру с помощью сайта

Подключение к удаленному компьютеру с помощью сайта

<р>2. После подключения запустите winscp.exe, чтобы открыть сеанс, указав на этот раз только протокол ( sftp ), имя сайта ( Adamsite ) и удаленный каталог ( / tmp ).

WinSCP снова откроет графическое диалоговое окно настроек передачи WinSCP с папкой для загрузки файлов и шаблоном ( \*.* ), указывающим все файлы в каталоге.

Нажмите «ОК», и WinSCP попытается загрузить все файлы из каталога /tmp на удаленном хосте по SFTP в локальный каталог, выбранный во всплывающем окне.

Загрузка файлов с помощью сайта


Скачивание файлов с помощью сайта

Загрузка файла или всей папки с локального компьютера на удаленный хост аналогична. Но вы также должны указать переключатель /upload с путем к файлу или каталогу для загрузки, например, winscp.exe Site3 /upload .\license.txt . Обратите внимание, что вам не обязательно использовать полный URL-адрес ( sftp://Adamsite/tmp ).

WinSCP.exe: редактирование удаленных файлов

Если у вас есть текстовый файл на удаленном узле, возможно, вы захотите сохранить его там, но вам нужно его отредактировать. Вместо того, чтобы вручную загружать, редактировать и загружать файл с помощью WinSCP, вы можете сделать все за один раз с помощью параметра /edit.

Чтобы отредактировать файл, укажите имя сайта ( Adamsite ), параметр /edit и путь к удаленному файлу для редактирования.

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

Редактирование удаленных файлов с помощью сайта

Редактирование удаленных файлов с помощью сайта

По завершении просто сохраните файл, и WinSCP сохранит его на удаленном хосте!

WinSCP.exe: ведение журнала сеанса

Когда вы запускаете команды с помощью winscp.exe, вам может понадобиться запись о том, какие команды вы запускали. Если это так, журналирование сеансов WinSCP для вас. WinSCP регистрирует команды через командную строку для каждого сеанса, определяемого при подключении к сеансу.

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

  • /log — путь к локальному файлу для хранения истории команд.
  • /loglevel — необязательный параметр, изменяющий уровень детализации журнала. По умолчанию уровень журнала установлен на Нормальный. Но вы можете изменить уровень на Пониженный или 1 для наименее детализированного ведения журнала на Отладка или 2 для наиболее детализированного ведения журнала.
  • /logsize — необязательный параметр, используемый для определения того, насколько большим может быть файл журнала и как долго WinSCP будет выполнять ротацию файла журнала. Значение этого параметра определяется как * .

Вы можете увидеть пример ниже. В этом примере winscp.exe подключается к хосту 54.179.19.216 и регистрирует все действия в файле C:\winscp.log на уровне Debug и сохраняет ( 5) Файлы журнала размером 10 МБ (5*10 МБ).

Несмотря на то, что вы видели различные способы подключения к удаленному хосту и выполнения множества разных действий, вы делали это с включенными колесами обучения. Вы использовали winscp.exe.

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

Теперь ниже вы увидите, что WinSCP подключается к удаленному хосту, определенному на сайте (Adamsite), в данном случае. После подключения вы можете инициировать команды и получать выходные данные так же, как в обычном сеансе SSH.

Подключение к сеансу с помощью новой пары ключей (ключ хоста)

Если вы хотите подключиться к сеансу с помощью аутентификации с открытым ключом, вы можете сделать это, сначала найдя отпечаток ключа хоста для сеанса вашего сайта. Для этого вам необходимо выполнить команду ssh-keygen в папке WinSCP, используя приведенный ниже синтаксис.

Проверка отпечатка пальца

Проверка отпечатка пальца

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

Всегда предваряйте отпечаток пальца ssh-rsa 2048, если используете ssh-keygen, как описано выше.

Запуск отдельных команд на удаленных компьютерах удобен, когда вы выполняете какую-то специальную задачу управления. Но отдельные команды не будут работать, если вы пытаетесь автоматизировать какой-то процесс в удаленном сеансе. Для этого вам нужно заглянуть в параметр /script.

<р>1. Чтобы продемонстрировать параметр /script, откройте свой любимый текстовый редактор и создайте текстовый файл с именем upload_file_script.txt на рабочем столе с помощью вашего любимого редактора.

<р>2. Создайте пустой текстовый файл с именем a.txt в каталоге /tmp на удаленном компьютере.

<р>3. Создайте локальный каталог C:\abc.

<р>4. Вставьте приведенное ниже содержимое в файл upload_file_script.txt и сохраните его.Вы создали сценарий WinSCP!

Подводя итог, приведенный ниже сценарий загружает файл a.txt из удаленного каталога /tmp и загружает его обратно в /tmp как новый_файл.txt.

Если, например, у вас есть закрытый ключ в формате PEM, сгенерированный сервисом AWS EC2, но вы хотите использовать популярную утилиту SSH Putty, вы застряли. Но WinSCP может помочь вам преобразовать ключи.

  • Используйте параметр /keygen, за которым следует ключ для преобразования (в данном случае PEM).
  • Укажите параметр -o и укажите путь к выходному файлу нового типа ключа.
  • При необходимости укажите параметр -c и добавьте комментарий.

Заключение

WinSCP — это бесплатный инструмент с множеством функций. С помощью этого руководства по CLI и руководства по графическому интерфейсу WinSCP вы должны понять, что возможно с помощью этого многофункционального инструмента! От передачи файлов, запуска команд, запуска скриптов и даже преобразования типов ключей WinSCP может многое сделать.

Что вы планируете использовать WinSCP сейчас?

Ненавидите рекламу? Хотите поддержать писателя? Получите многие из наших руководств в виде руководства по ATA.

Ещё от ATA Learning & Partners

Резервное копирование Office 365 для чайников

Лучшее руководство по защите данных Microsoft Office 365. Изучите готовые функции безопасности.

Руководства ATA

ATA известна своими высококачественными письменными учебными пособиями в виде сообщений в блогах. Поддержите ATA с помощью электронных книг ATA Guidebook PDF, доступных в автономном режиме и без рекламы!

Читайте также: