WinSCP Command-Line Simplificado: Sua Referência Completa

O WinSCP, uma ferramenta indispensável para transferências seguras de arquivos, oferece mais do que apenas uma interface gráfica. A funcionalidade da linha de comando do WinSCP permite que profissionais de TI e administradores de sistemas gerenciem e automatizem as transferências de arquivos diretamente do console, aumentando a eficiência e flexibilidade em seus fluxos de trabalho.

Para aprender todos os detalhes da interface gráfica do WinSCP, confira o complemento deste artigo, O Guia Definitivo da Interface Gráfica do WinSCP.

Descubra todas as funcionalidades da linha de comando do WinSCP neste Guia Definitivo. Você aprenderá, passo a passo, como aproveitar ao máximo a linha de comando do WinSCP para aumentar sua produtividade e otimizar seus processos de transferência de arquivos.

Vamos mergulhar no mundo da gestão de arquivos por linha de comando com o WinSCP!

Pré-requisitos para usar a linha de comando do 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.

Gerando uma URL de sessão com a linha de comando do WinSCP

Enquanto a interface gráfica do WinSCP oferece uma janela de login conveniente para configurar conexões, a linha de comando do WinSCP requer uma abordagem diferente. Em vez de janelas interativas, você deve especificar os atributos de conexão de maneira mais direta.

Connection attributes

Para instruir a linha de comando do WinSCP sobre onde se conectar, uma URL de sessão é utilizada. Essa URL encapsula os atributos de conexão definidos na interface gráfica.

A basic session URL follows this structure:

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

Por exemplo, para se conectar ao host 1.1.1.1 com nome de usuário adam e senha pw usando SFTP no WinSCP, a URL de sessão seria:

sftp://adam:pw@1.1.1.1

Se você configurou um site WinSCP, pode facilmente encontrar a URL da sessão. Abra o GUI do WinSCP, clique em Sessão, clique com o botão direito no seu site e selecione Gerar URL/Código da Sessão.

WinSCP site

A caixa de diálogo URL da sessão fornece várias opções de personalização para sua conexão, cada uma influenciando como o WinSCP interage com o host remoto.

  • Diretório inicial – Especifica o diretório remoto que o WinSCP abre ao se conectar.
  • Chave do host SSH – Usa uma chave SSH existente para autenticação do host remoto.
  • URL específica do WinSCP – Gera uma URL de sessão única, como WinSCP-sftp://, especificamente para o entendimento do WinSCP, evitando conflitos com navegadores da web padrão.
  • Extensão de salvamento – Frequentemente combinada com URLs específicas do WinSCP para minimizar ainda mais conflitos de aplicativos.

Quando todas as opções estão habilitadas, o formato da URL da sessão deve se assemelhar ao seguinte:

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

Dominando a Linha de Comando do WinSCP: Gerando Código de Conexão da Sessão

Com sua URL da sessão pronta, o WinSCP vai além, oferecendo exemplos de código na guia Gerar URL/Código da Sessão da janela Script. Aqui, você pode selecionar diferentes tipos de script:

  • Arquivo de script
  • Arquivo em lote
  • linha de comando
  • script do PowerShell

Escolha o tipo de script preferido, e o WinSCP gerará a sintaxe necessária para se conectar a um host remoto usando a linha de comando do WinSCP.

Generating Session Connection Code

Para codificar em .NET, C# ou PowerShell, mude para a guia de código da assembleia .NET, conforme mostrado abaixo.

.NET assembly code tab

Compreendendo WinSCP.exe vs. WinSCP.com no Contexto da Linha de Comando do WinSCP

Saber como gerar uma URL de sessão é crucial para usar as ferramentas de linha de comando do WinSCP. Vamos explorar como conectar a um host usando essas ferramentas, começando por entender as diferenças entre winscp.exe e winscp.com.

Winscp.exe funciona tanto como o iniciador da GUI quanto como uma utilidade de linha de comando para tarefas simples. Você pode usá-lo para comandos básicos se especificar os parâmetros corretos.

Pense no winscp.exe como uma ponte entre os recursos da GUI e a interface de linha de comando do WinSCP.

Para tarefas mais complexas, especialmente em scripts, winscp.com é a escolha certa. Esta ferramenta baseada em console é ideal para scripts de automação e suporta uma variedade de funções SSH. Ela oferece uma experiência verdadeira e não interativa de linha de comando do WinSCP.

Independentemente da sua escolha, comece abrindo um prompt de comando (seja cmd.exe ou PowerShell) e navegue até o diretório de instalação do WinSCP.

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

Com o prompt de comando pronto, vamos prosseguir para usar o WinSCP para conexões remotas.

Utilizando o WinSCP.exe: Conectando-se a hosts remotos com URLs de sessão

Um dos métodos mais simples para se conectar a um host remoto com a linha de comando do WinSCP é executando o winscp.exe com a URL da sessão como parâmetro. Por exemplo, para se conectar ao host 54.179.19.216 com o nome de usuário automate e senha automate usando sftp, e então navegar até o diretório /tmp, utilize o seguinte comando:

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

Para uma segurança aprimorada, ao invés de usar uma senha, você pode se conectar a um host remoto usando uma chave privada com o parâmetro /privatekey. Embora esse método seja mais seguro, os detalhes de configuração de uma chave privada estão além do escopo deste tutorial sobre a linha de comando do WinSCP.

Aqui está um exemplo de conexão ao host 54.179.19.216 usando o nome de usuário automate e uma chave privada mykey.ppk através do scp.

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

Transferindo arquivos eficientemente com o WinSCP.exe sem um site

A linha de comando do WinSCP através do winscp.exe permite que você transfira arquivos rapidamente usando conexões ad-hoc, mesmo sem uma configuração pré-definida de site. Vamos explorar o download de arquivos de um host remoto sem uma configuração de site. Por exemplo, baixando todos os arquivos no diretório /tmp do host remoto 54.179.19.216 usando o SFTP.

1. Comece gerando uma URL de sessão. Abaixo está um exemplo de conexão ao host remoto com as credenciais automate e aterrissando no diretório /tmp.

# URL de Sessão Gerada
sftp://automate:automate@54.179.19.216/tmp

2. Execute winscp.exe com a URL de sessão para acessar a caixa de diálogo de configurações de transferência do WinSCP. O diretório local padrão é ~\Documentos, e o WinSCP irá direcionar todos os arquivos (\\*.*) no diretório remoto.

# Sintaxe do Comando: winscp.exe [/caminho/[arquivo]]
winscp.exe sftp://automate:automate@54.179.19.216/tmp

3. Clique em OK para iniciar a transferência. O WinSCP irá baixar todos os arquivos do diretório remoto /tmp para o diretório local escolhido via SFTP.

Downloading the Files without a Site

Upload de Arquivos Usando o WinSCP.exe Sem um Site

Após dominar os downloads de arquivos, vamos alternar para o upload de arquivos para um host remoto usando a linha de comando do WinSCP com winscp.exe. O processo é semelhante ao download, mas desta vez você também precisará usar a opção /upload, especificando o arquivo ou pasta que deseja fazer upload.

# Fazendo o upload do arquivo a.txt usando winscp.exe para o servidor remoto sem um site.
.\WinSCP.exe sftp://automate:automate@54.179.19.216/tmp/ /upload C:\Users\shanky\Desktop\a.txt

A execução do comando acima abre a caixa de diálogo de upload do WinSCP, indicando os arquivos a serem enviados (*.*) para o diretório /tmp do host remoto.

Uploading the Files without a Site

Após carregar, faça login no host remoto com um cliente SSH e verifique o sucesso do carregamento com comandos como `$pwd$` e `$ls -lh$`, que exibirão o conteúdo do diretório, confirmando a transferência bem-sucedida.

File Uploaded Successfully on Remote Machine

Aproveitando o WinSCP.exe para Baixar Arquivos Usando um Site

Enquanto os URLs de sessão são práticos para conexões ad hoc, ter um site pré-configurado no WinSCP simplifica o processo. Se você tem usado o WinSCP por um tempo, é provável que já tenha vários sites configurados.

Com o winscp.exe, você pode facilmente utilizar esses sites, criados na GUI, para se conectar a um host remoto, evitando a necessidade de lembrar detalhes do URL da sessão.

Para localizar sites salvos no WinSCP, navegue até Sessão -> Sites -> Gerenciador de Sites.

Por exemplo, vamos explorar o download de arquivos usando um site pré-existente com a linha de comando do WinSCP.

1. Conecte-se ao host remoto usando um site WinSCP configurado. O exemplo abaixo demonstra uma conexão usando um site chamado Adamsite.

# Conectar-se com um site WinSCP
winscp.exe Adamsite

Uma vez conectado, o WinSCP exibe uma notificação de status.

Connecting to Remote Machine Using a Site

2. Em seguida, execute o winscp.exe com o protocolo (sftp), nome do site (Adamsite) e diretório de destino (/tmp). Esta abordagem abre a caixa de diálogo de configurações de transferência do WinSCP, pronta para ações de download de arquivos.

# Iniciar conexão remota usando um site
winscp.exe sftp://Adamsite/tmp

Clique em OK para iniciar o download de todos os arquivos do diretório /tmp do host remoto para o seu diretório local via SFTP.

Downloading Files Using a Site

Para enviar arquivos do seu computador local para um host remoto, o processo é análogo. Use o switch /upload junto com o caminho do arquivo ou diretório, como winscp.exe Site3 /upload .\license.txt. A especificação completa do URL (sftp://Adamsite/tmp) não é necessária.

Otimizando a Edição Remota de Arquivos com WinSCP.exe

Precisa editar um arquivo de texto em um host remoto? Pule o ciclo de download-edição-upload manual. A linha de comando do WinSCP oferece um método mais eficiente usando o parâmetro /edit. Basta especificar o nome do site, /edit, e o caminho do arquivo remoto.

Exemplo:

# Editando um arquivo em um host remoto
winscp.exe /edit /Adamsite/path/to/file.txt
# Usando a linha de comando do WinSCP para editar um arquivo remoto
.\WinSCP.exe Adamsite /edit /tmp/a.txt

Executar o comando acima abre o seu editor de texto padrão, permitindo que você modifique o arquivo remoto conforme necessário. Essa integração perfeita é um recurso-chave das capacidades da linha de comando do WinSCP.

Editing Remote Files Using a Site

Após a edição, simplesmente salve o arquivo. O WinSCP cuida de atualizar o arquivo no host remoto, otimizando o processo de edição-upload.

Otimizando o Fluxo de Trabalho com o Registro de Sessão do WinSCP.exe

Para um registro abrangente de suas ações, o comando de linha do WinSCP, WinSCP command line, oferece o registro de sessão. Essa funcionalidade é inestimável para rastrear os comandos executados durante uma sessão, auxiliando na solução de problemas e no registro de informações.

Para habilitar o registro de sessão, inclua até três parâmetros ao se conectar a uma sessão:

# Parâmetros para o registro de sessão
/log="<log file path>" /loglevel=<level> /logsize=<size>
  • /log – Especifica o caminho para o arquivo de log.
  • /loglevel – Define a verbosidade dos logs, variando de Reduced (1) a Debug (2).
  • /logsize – Define o tamanho e a rotação do arquivo de log, no formato <total de logs arquivados>*<tamanho máximo do arquivo de log>.

Abaixo está um exemplo de winscp.exe conectando-se a um host e registrando atividades em C:\winscp.log em um nível Debug. O comando mantém até cinco arquivos de log de 10MB cada (5*10MB).

# Exemplo de registro de sessão do WinSCP
winscp.exe sftp://[email protected]/tmp/ /log="C:\\winscp.log" /loglevel=2 /logsize=5*10M

Explorando Recursos Avançados com Comandos Interativos do WinSCP.com

Enquanto winscp.exe fornece uma ótima introdução às conexões remotas, winscp.com eleva sua experiência de linha de comando, oferecendo interação e controle mais profundos.

Comece abrindo o winscp.com em um ambiente de linha de comando. Você entrará em uma sessão interativa semelhante ao SSH, indicada pelo prompt winscp>.

.\WinSCP.com

Conecte-se a um computador remoto usando o comando open, seguido pelo nome do site desejado.

open Adamsite

Após se conectar ao host remoto via linha de comando do WinSCP, conforme ilustrado com Adamsite, você se encontrará em um ambiente semelhante a uma sessão SSH. Aqui, você pode executar comandos e interagir com o host remoto de forma eficiente.

Interactively Running Commands using winscp.com

Aprimorando a Segurança: Conectando-se com um Novo Par de Chaves (Chave do Host) no WinSCP

A autenticação de chave pública aumenta a segurança ao se conectar a sessões. Para usá-la, primeiro obtenha a impressão digital da chave do host para sua sessão. Use o comando ssh-keygen na pasta do WinSCP seguindo a sintaxe abaixo.

Este comando gera um par de chaves SSH, essencial para autenticação segura. Uma vez executado, você receberá uma impressão digital necessária para as conexões de sessão winscp.com.

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

Para se conectar com o parâmetro hostkey, forneça a impressão digital gerada conforme mostrado no exemplo abaixo.

Inclua o prefixo ssh-rsa 2048 ao usar a impressão digital de ssh-keygen.

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

Maximizando a Eficiência com o WinSCP.com: Usando o Parâmetro /command

Embora as sessões interativas sejam ótimas para certas tarefas, a execução de comandos não interativos é crucial para scripts e automação. O winscp.com suporta isso através do parâmetro /command, permitindo que você estabeleça uma sessão, execute um comando e desconecte em um único passo.

Por exemplo, use o parâmetro /command para transferir um arquivo local para um host remoto. O exemplo abaixo demonstra a cópia de um arquivo de C:\abc\abc.txt para o diretório /tmp no host remoto 13.213.61.127.

O parâmetro /command aceita dois argumentos como strings: um para estabelecer a sessão e outro para a execução do comando real.

# Transferência de arquivo não interativa usando 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%

Automatizando Tarefas com WinSCP.com: O Parâmetro /script

Para necessidades de automação mais complexas, o parâmetro /script no winscp.com permite que você execute uma série de comandos a partir de um script. Este recurso é inestimável ao gerenciar tarefas repetitivas ou operações complexas em hosts remotos.

Para utilizar o parâmetro /script no linha de comando do WinSCP, comece criando um arquivo de script chamado upload_file_script.txt na sua área de trabalho com o seu editor de texto preferido.

Prepare um arquivo de texto em branco chamado a.txt no diretório /tmp do seu computador remoto.

Crie um diretório local em C:\abc.

A seguir, introduza o seguinte conteúdo no arquivo upload_file_script.txt e salve-o. Este script baixa o arquivo a.txt do diretório remoto /tmp e o reenvia como new_file.txt.

# Script WinSCP para Transferência de Arquivos
 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

Execute este script usando o parâmetro /script no WinSCP com o seguinte comando:

Use o comando /ini=nul para evitar que o WinSCP salve quaisquer configurações de sessão ao sair.

winscp.com /ini=nul /script=upload_file_script.txt
   # Saída
   Authenticating...
   Session started.
   /tmp
   a.txt                     |           10 B |    0.0 KB/s | binary | 100%
   Session closed.
   # Nova sessão para upload
   Session started.
   /tmp
   C:\abc\new_file.txt       |            0 B |    0.0 KB/s | binary |   0%
   Session closed.

Utilizando WinSCP.com para Conversão de Chave

O WinSCP suporta autenticação baseada em senha e certificado ou autenticação baseada em chave pública. Para usar autenticação baseada em chave pública, é necessário um formato de chave privada compatível. O WinSCP auxilia na conversão de formatos de chave para compatibilidade.

Por exemplo, converta uma chave privada no formato PEM (como as da AWS EC2) para um formato amigável ao Putty usando a linha de comando do WinSCP. O parâmetro /keygen em winscp.com facilita essa conversão.

  • Aplique o parâmetro /keygen, seguido do caminho atual da chave.
  • Inclua o parâmetro -o para especificar o caminho do arquivo de saída da chave convertida.
  • Opcionalmente, use o parâmetro -c para adicionar um comentário à chave convertida.
.\WinSCP.com /keygen C:\Users\shanky\Desktop\testing.pem -o C:\Users\shanky\Desktop\testing.ppk -c "Converted from OpenSSH format"

Conclusão

Com este guia abrangente para a linha de comando do WinSCP, juntamente com o Guia da Interface Gráfica do WinSCP, você agora está equipado para aproveitar totalmente as capacidades do WinSCP. Seja para transferências de arquivos, execução de comandos, execução de scripts ou conversões de chaves, o WinSCP é uma ferramenta versátil para qualquer profissional de TI.

Como você planeja integrar o WinSCP ao seu fluxo de trabalho? Compartilhe seus pensamentos e experiências!

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