WinSCP Command-Line упрощенный: ваш полный справочник

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

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

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

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

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

  • A Windows XP+ PC – This tutorial will use Windows 10 Enterprise.
  • A remote Linux host – This tutorial will use an Ubuntu 18.04.5 LTS machine.
  • A user account on the remote SSH host with sudo permissions.

Генерация URL-адреса сессии с помощью командной строки WinSCP

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

Connection attributes

Для указания командной строке WinSCP, куда подключаться, используется URL-адрес сессии. Этот URL-адрес инкапсулирует атрибуты соединения, определенные в GUI.

A basic session URL follows this structure:

<protocol>://<username>:<password>@<host name>/<folder path>

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

sftp://adam:pw@1.1.1.1

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

WinSCP site

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

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

Когда все параметры включены, формат URL сессии должен иметь следующий вид:

<protocol>://<username>:<password>@<host name>/<folder path><save extension>
Generate Session URL/Code

Освоение командной строки WinSCP: генерация кода подключения к сессии

С URL сессии готовым, WinSCP идет еще дальше, предлагая примеры кода во вкладке Сценарий окна Сгенерировать URL/код сессии. Здесь вы можете выбрать из различных типов сценариев:

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

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

Generating Session Connection Code

Для написания кода на .NET, C# или PowerShell переключитесь на вкладку кода сборки .NET, как показано ниже.

.NET assembly code tab

Понимание WinSCP.exe против WinSCP.com в контексте командной строки WinSCP

Знание того, как сгенерировать URL сеанса, критично для использования инструментов командной строки WinSCP. Рассмотрим, как подключиться к хосту с помощью этих инструментов, начиная с понимания различий между winscp.exe и winscp.com.

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

Представьте winscp.exe как мост между функциями GUI и интерфейсом командной строки WinSCP.

Для более сложных задач, особенно в скриптах, winscp.com – это ваш выбор. Это консольный инструмент, идеально подходящий для автоматизации сценариев и поддерживающий широкий спектр функций SSH. Он обеспечивает полноценный, неинтерактивный опыт командной строки WinSCP.

Вне зависимости от вашего выбора, начните с открытия командной строки (как cmd.exe, так и PowerShell) и перейдите в каталог установки WinSCP.

cd 'C:\Program Files (x86)\WinSCP'

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

Используя WinSCP.exe: Подключение к удаленным хостам с помощью URL-адресов сессий

Один из самых простых способов подключения к удаленному хосту с помощью командной строки WinSCP заключается в запуске winscp.exe с URL-адресом сессии в качестве параметра. Например, для подключения к хосту 54.179.19.216 с именем пользователя automate и паролем automate с использованием sftp, а затем перехода в каталог /tmp, используйте следующую команду:

WinSCP.exe sftp://automate:automate@54.179.19.216/tmp/

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

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

winscp.exe scp://[email protected]/tmp/ /privatekey=mykey.ppk

Эффективная загрузка файлов с помощью WinSCP.exe без использования сайта

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

1. Начните с генерации URL-сессии. Ниже приведен пример подключения к удаленному хосту с учетными данными automate и перехода в каталог /tmp.

# Сгенерированный URL-сессии
sftp://automate:automate@54.179.19.216/tmp

2. Запустите winscp.exe с URL-сессии для доступа к окну настроек передачи WinSCP. Локальный каталог по умолчанию – ~\Documents, а WinSCP будет обрабатывать все файлы (\\*.*) в удаленном каталоге.

# Синтаксис команды: winscp.exe [/путь/[файл]]
winscp.exe sftp://automate:automate@54.179.19.216/tmp

3. Щелкните “ОК”, чтобы начать передачу. WinSCP загрузит все файлы из удаленного каталога /tmp в выбранный вами локальный каталог по протоколу SFTP.

Downloading the Files without a Site

Загрузка файлов с использованием WinSCP.exe без использования сайта

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

# Загрузка файла a.txt с помощью winscp.exe на удаленный сервер без использования сайта.
.\WinSCP.exe sftp://automate:automate@54.179.19.216/tmp/ /upload C:\Users\shanky\Desktop\a.txt

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

Uploading the Files without a Site

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

File Uploaded Successfully on Remote Machine

Использование WinSCP.exe для загрузки файлов с использованием сайта

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

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

Чтобы найти сохраненные сайты в WinSCP, перейдите в меню Сеанс -> Сайты -> Менеджер сайтов.

Например, давайте рассмотрим загрузку файлов с использованием предварительно созданного сайта с помощью командной строки WinSCP.

1. Подключитесь к удаленному хосту, используя настроенный сайт WinSCP. Приведенный ниже пример демонстрирует подключение с использованием сайта с именем Adamsite.

# Подключение с помощью сайта WinSCP
winscp.exe Adamsite

После подключения WinSCP отображает уведомление о статусе.

Connecting to Remote Machine Using a Site

2. Затем выполните winscp.exe с протоколом (sftp), именем сайта (Adamsite) и целевым каталогом (/tmp). Этот подход открывает окно настроек передачи WinSCP, готовое для выполнения действий по загрузке файлов.

# Инициация удаленного подключения с использованием сайта 
winscp.exe sftp://Adamsite/tmp

Нажмите ОК, чтобы начать загрузку всех файлов из каталога /tmp удаленного хоста в ваш локальный каталог через SFTP.

Downloading Files Using a Site

Для загрузки файлов с локальной машины на удаленный хост процесс аналогичен. Используйте параметр /upload вместе с путем к файлу или каталогу, например, winscp.exe Site3 /upload .\license.txt. Полная спецификация URL (sftp://Adamsite/tmp) не требуется.

Оптимизация удаленного редактирования файлов с помощью WinSCP.exe

Нужно отредактировать текстовый файл на удаленном хосте? Пропустите ручной цикл загрузки-редактирования-загрузки. Командная строка WinSCP предлагает более эффективный метод с использованием параметра /edit. Просто укажите имя сайта, /edit и путь к удаленному файлу.

Пример:

# Редактирование файла на удаленном хосте
winscp.exe /edit /Adamsite/path/to/file.txt
# Использование командной строки WinSCP для редактирования удаленного файла
.\WinSCP.exe Adamsite /edit /tmp/a.txt

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

Editing Remote Files Using a Site

После редактирования просто сохраните файл. WinSCP обновит файл на удаленном хосте, упрощая процесс редактирования-загрузки.

Оптимизация рабочего процесса с помощью журналирования сессии в WinSCP.exe

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

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

# Параметры для записи сеанса
/log="<log file path>" /loglevel=<level> /logsize=<size>
  • /log – Указывает путь к файлу журнала.
  • /loglevel – Определяет подробность записи в журнале, варьирующуюся от Сокращенная (1) до Отладка (2).
  • /logsize – Задает размер и ротацию файла журнала в формате <всего архивных журналов>*<максимальный размер файла журнала>.

Ниже приведен пример использования winscp.exe для подключения к хосту и записи активности в файл C:\winscp.log с уровнем Отладка. Команда создает и поддерживает до пяти журналов размером 10 МБ (5*10MB).

# Пример записи сеанса WinSCP
winscp.exe sftp://[email protected]/tmp/ /log="C:\\winscp.log" /loglevel=2 /logsize=5*10M

Исследование расширенных возможностей с интерактивными командами WinSCP.com

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

Начните с открытия winscp.com в командной строке. Вы попадете в интерактивную сессию, напоминающую SSH, что будет указано при появлении приглашения winscp>.

.\WinSCP.com

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

open Adamsite

После подключения к удаленному хосту через командную строку WinSCP, как показано на примере Adamsite, вы окажетесь в среде, похожей на сеанс SSH. Здесь вы можете выполнять команды и взаимодействовать с удаленным хостом эффективно.

Interactively Running Commands using winscp.com

Улучшение безопасности: подключение с помощью новой пары ключей (host key) в WinSCP

Аутентификация с использованием открытого ключа повышает безопасность при подключении к сеансам. Чтобы использовать ее, сначала получите отпечаток host key для вашего сеанса. Используйте команду ssh-keygen в папке WinSCP в соответствии со следующим синтаксисом.

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

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
Verifying SSH Key Fingerprint

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

Включите префикс ssh-rsa 2048 при использовании отпечатка от ssh-keygen.

winscp.com open sftp://automate:[email protected]/  -hostkey="ssh-rsa 2048 x4DeZzv4jcWEk2zeeJgr5JeJ+z0xA+lGa3LC0q/B+88="

Максимизация эффективности с помощью WinSCP.com: использование параметра /command

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

Например, используйте параметр /command для передачи локального файла на удаленный хост. В приведенном ниже примере показано копирование файла с C:\abc\abc.txt в каталог /tmp на удаленном хосте 13.213.61.127.

Параметр /command принимает два аргумента в виде строк: один для установки сеанса, а другой для выполнения фактической команды.

# Неинтерактивная передача файла с помощью WinSCP
WinSCP.com /command "open sftp://adam:[email protected]/tmp" "put C:\\abc\\abc.txt"
Session log for adam@13.213.61.127
C:\abc\abc.txt            |            0 B |    0.0 KB/s | binary |   0%

Автоматизация задач с помощью WinSCP.com: параметр /script

Для более сложных потребностей в автоматизации параметр /script в winscp.com позволяет выполнять серию команд из сценария. Эта функция бесценна при управлении повторяющимися задачами или сложными операциями на удаленных хостах.

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

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

Создайте локальный каталог в C:\abc.

Затем введите следующее содержимое в файл upload_file_script.txt и сохраните его. Этот скрипт загружает файл a.txt из удаленного каталога /tmp и затем снова загружает его под именем new_file.txt.

# Скрипт WinSCP для передачи файлов
 open sftp://automate:automate@54.179.19.216/  -hostkey="ssh-rsa 2048 x4DeZzv4jcWEk2zeeJgr5JeJ+z0xA+lGa3LC0q/B+88="
 cd /tmp
 get a.txt C:\abc\
 close
 open sftp://automate:automate@54.179.19.216/ -hostkey="ssh-rsa 2048 x4DeZzv4jcWEk2zeeJgr5JeJ+z0xA+lGa3LC0q/B+88="
 cd /tmp
 put C:\abc\new_file.txt 
 close
 exit

Запустите этот скрипт с помощью параметра /script в WinSCP с следующей командой:

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

winscp.com /ini=nul /script=upload_file_script.txt
   # Вывод
   Authenticating...
   Session started.
   /tmp
   a.txt                     |           10 B |    0.0 KB/s | binary | 100%
   Session closed.
   # Новый сеанс для загрузки
   Session started.
   /tmp
   C:\abc\new_file.txt       |            0 B |    0.0 KB/s | binary |   0%
   Session closed.

Используя WinSCP.com для преобразования ключа

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

Например, преобразуйте закрытый ключ в формате PEM (например, ключи от AWS EC2) в формат, совместимый с Putty, используя командную строку WinSCP. Параметр /keygen в winscp.com облегчает это преобразование.

  • Примените параметр /keygen, за которым следует текущий путь к ключу.
  • Укажите параметр -o, чтобы указать путь к файлу вывода преобразованного ключа.
  • При желании используйте параметр -c, чтобы добавить комментарий к преобразованному ключу.
.\WinSCP.com /keygen C:\Users\shanky\Desktop\testing.pem -o C:\Users\shanky\Desktop\testing.ppk -c "Converted from OpenSSH format"

Заключение

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

Как вы планируете интегрировать WinSCP в свой рабочий процесс? Поделитесь своими мыслями и опытом!

Source:
https://adamtheautomator.com/winscp-command-line/