TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #4011 9.51K
Для подключения по SFTP, SCP или S3 в Windows я использую бесплатную программу WinSCP. Не раз об этом упоминал в разных заметках. Эта программа умеет работать в консольном режиме, плюс поддерживает выполнение команд, переданных через отдельный файл. То есть она поддерживает автоматизацию с использованием простого и интуитивного скриптового языка.

Покажу на простом и наглядном примере передачу файла с Linux машины по SSH на Windows, используя WinSCP и скрипт. Команду на копирование файла мы будем запускать с Windows. У WinSCP есть портабельная версия, так что можно просто скачать и распаковать в какую-нибудь директорию. Оттуда запускать в консольном режиме.

Нам понадобится публичный ключ, с помощью которого мы будем проходить аутентификацию на удалённом сервере, скрипт с набором команд для выполнения после подключения и сам файл, который будем передавать. Сразу уточню, что WinSCP не принимает публичные ключи, сформированные с помощью ssh-keygen. Ключ нужно будет сделать в формате PuTTY, с помощью PuTTYgen. Не понимаю, почему у putty свой формат ключей. Всегда это доставляло только неудобства.

Содержимое скрипта для получения файла с удалённого сервера:

# Подключаемся
open scp://root@10.20.1.36/ -privatekey=id_rsa -hostkey="ssh-ed25519 255 s/YHwFuEH3Lq9dGYnBfuELZYkAw4T5umNOPPPFUPCpY"
# Переходим в директорию
cd /home/zerox
# Качаем файл
get testfile.txt "C:\Users\Zerox\Documents\tmp\"
# Отключаемся и выходим
close
exit

Для того, чтобы быстро узнать hostkey, можно запустить без него. Тогда в консоли увидите ошибку, что ключ указанного сервера не добавлен. Копируете его и добавляете.

Запускаем winscp с этим скриптом так:

>winscp.com /ini=nul /script=script.txt

Есть testfile.txt уже есть, он будет перезаписан без лишних вопросов и уведомлений. Подобным образом можно очень быстро организовать необходимую автоматизацию. Например, в этом же скрипте можно скачанный файл передать на другой сервер по sftp с аутентификацией по паролю. Нужно добавить пару строк в скрипт:

open sftp://user:password@10.20.1.100/
put "C:\Users\Zerox\Documents\tmp\testfile.txt" "/mnt/backup"

На сайте WinSCP есть описание работы скриптов, список команд и готовые примеры:

◽️Общее описание скриптов и автоматизации
◽️Команды
◽️Примеры скриптов

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

get -latest /home/user/* c:\downloaded\

Я на баше подобное писал, там сильно сложнее. Надо было подключиться по ssh, там выполнить команду с find с параметрами поиска, вывод результата передать в scp. Делал тут когда-то заметку об этом.

Так выглядит проверка существования файла с помощью bat и winscp:

@echo off
set REMOTE_PATH=/home/user/test.txt
winscp.com /command "open mysession" "stat %REMOTE_PATH%" "exit"
if %ERRORLEVEL% neq 0 goto error
echo File %REMOTE_PATH% exists
rem Do something
exit /b 0
:error
echo Error or file %REMOTE_PATH% not exists
exit /b 1

Все действия можно логировать с помощью ключа /log=myscript.log:

> winscp.com /ini=nul /log=myscript.log /script=myscript.txt

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

#windows #scp #sftp
  • 👍 102
  • 👎 3
More from @srv_admin
  1. Oct 14, 2026Один мой знакомый, читатель и автор своего небольшого канала поделился любопытной практиче…
  2. Oct 14, 2026Что будет, если убрать репликацию с диска?☁️ В K2 Cloud проверили и запустили сетевые нере…
  3. Oct 14, 2026Рассказываю про небольшой трюк, который я лично на днях проделал для решения небольшой зад…
  4. Oct 12, 2026Вот мы и вступили в новую реальность, когда стали пропадать датацентры целиком, что повлек…
  5. Oct 12, 2026💻Практический вебинар «СТРАТЕГИЯ РЕЗЕРВНОГО КОПИРОВАНИЯ» 📹 15 октября в 11:00 Мск за 90…
  6. Oct 10, 2026Когда я работал в одной небедной компании, там регулярно обновляли парк оборудования, а ст…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →