Como usar o OpenSSH para mover arquivos no Windows Server
Apr 5, 2024
Administradores de Linux e Unix estão acostumados a usar Open Secure Shell (OpenSSH) para se conectar a servidores porque isso faz parte desses sistemas há décadas. Usuários de Windows, por outro lado, tradicionalmente precisam baixar ferramentas de terceiros como Putty ou WinSCP para utilizar as capacidades de SSH.
No entanto, isso mudou quando o OpenSSH se tornou disponível como um recurso opcional no Windows 10 e no Windows Server 2019. Como o Windows agora oferece nativamente tanto o servidor SSH quanto o cliente SSH, não há razão para usar telnet ou FTP, que não possuem capacidades de criptografia — SSH oferece segurança superior quando você precisa se conectar a um servidor ou copiar arquivos através de uma conexão de rede.
Este artigo detalha como instalar o OpenSSH e usá-lo para transferir arquivos de forma segura usando o WinSCP ou o PowerShell.
Para que é utilizado o OpenSSH?
O OpenSSH é uma ferramenta que fornece sessões de comunicação seguras através de uma rede de computadores utilizando o protocolo SSH. Pode ser utilizado para uma variedade de tarefas, incluindo as seguintes:
- Faça login de forma segura em máquinas remotas para executar comandos para gerenciamento de servidores ou suporte técnico.
- Copie ou mova arquivos entre duas máquinas com segurança.
Essas tarefas são seguras porque o OpenSSH inclui o protocolo Secure Copy (SCP) e o protocolo SSH File Transfer (SFTP), e o OpenSSH criptografa todo o tráfego por meio de um túnel seguro, permitindo que você transmita dados sensíveis pela internet ou rede insegura. O túnel é criado quando o cliente e o servidor trocam chaves públicas.
Como adicionar o recurso OpenSSH no Windows
Pré-requisitos
Para instalar o OpenSSH em uma máquina Windows:
- O dispositivo deve estar executando pelo menos o Windows Server 2019 ou Windows 10 (build 1809).
- O computador deve estar executando o PowerShell 5.1 ou posterior.
- Você deve usar uma conta que seja membro do grupo de Administradores integrado.
Você deve começar verificando se o OpenSSH já está instalado. Usando um terminal do PowerShell para Administradores, execute este comando:
Get-WindowsCapability -Online -Name "Open*"
Você pode ver na captura de tela abaixo que o cliente OpenSSH está instalado, mas o servidor OpenSSH não está.
Você pode instalar tanto o servidor OpenSSH quanto o cliente OpenSSH usando as configurações do Windows ou o PowerShell, conforme explicado abaixo.
Instalando o OpenSSH usando as Configurações do Windows
- Para começar, vá até a seção Apps & features das Configurações e clique em Manage optional features.
- Clique em Add a feature.
- Para instalar o componente do servidor, selecione OpenSSH Server e clique no botão Instalar.
- Em seguida, instale o cliente SSH. Selecione OpenSSH Client e clique em Instalar. Observe que se o cliente já estiver instalado, você verá um botão Desinstalar em vez disso, conforme mostrado abaixo; nesse caso, nenhuma ação é necessária.
- Configure o serviço OpenSSH para ser executado automaticamente usando o Gerenciador de Serviços do Windows, conforme ilustrado nesta captura de tela:
- Se o Windows Defender Firewall com Segurança Avançada estiver ativado, será necessário abrir a porta 22, que é designada para SSH pela Internet Assigned Numbers Authority (IANA).
Usando PowerShell para Instalar OpenSSH
Alternativamente, você pode instalar os componentes do servidor e cliente OpenSSH usando o Windows PowerShell.
- Instale o componente do servidor OpenSSH usando o seguinte comando:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
- Em seguida, instale o cliente OpenSSH usando o seguinte comando:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
- Em seguida, use os seguintes comandos do PowerShell para configurar o serviço OpenSSH e iniciá-lo.
Start-Service sshd
Set-Service -Name sshd -StartupType ‘Automatic’
- Como mencionado anteriormente, a porta 22 deve estar aberta no firewall. Você pode verificar rapidamente se uma regra de firewall já está configurada para o OpenSSH usando o seguinte comando:
Get-NetFirewallRule -Name *ssh*
A saída abaixo mostra que uma regra já foi criada.
Se a regra estiver ausente, use o seguinte comando para abrir a porta SSH:
New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
- Por último, certifique-se de que tudo está configurado corretamente e que o daemon OpenSSH está aguardando por conexões de entrada. Para testar a conexão, execute o seguinte comando a partir de um servidor ou máquina desktop diferente:
Test-NetConnection -ComputerName <computer name> -Port 22 -InformationLevel Detailed
Se o teste for bem-sucedido, você verá algo assim:
Se falhar, isso pode significar várias coisas relacionadas à conectividade de rede; como a regra do Firewall não ter sido criada ou ativada em um computador remoto.
Como mover um arquivo usando SSH
Mover um arquivo usando SSH é quase o mesmo que mover um com uma aplicação FTP como WinSCP. Note que você deve ter permissão para ler o arquivo na máquina de origem e permissão de escrita no diretório de destino.
Movendo um arquivo usando WinSCP
Primeiro, vamos usar a utilidade WinSCP para testar o novo servidor SSH. (Se necessário, você pode baixar o WinSCP aqui.) Observe que se você usar o WinSCP, não precisa ativar o cliente OpenSSH.
- Abra o WinSCP e defina uma nova conexão com o servidor: Escolha Novo Site, certifique-se de que o protocolo de arquivo está definido como SFTP e a porta está definida como 22 (os valores padrão), e insira um nome de usuário, conforme mostrado no exemplo abaixo.
- Clique no botão Login e forneça a senha para a conta especificada. A próxima caixa de diálogo mostrará a impressão digital da chave ECDSA do servidor, conforme mostrado na captura de tela abaixo. Esta chave é usada principalmente para garantir que o cliente está se comunicando com o servidor correto. Quando o cliente se conecta ao servidor pela primeira vez, a chave pública do host é passada para o cliente. Clique em Sim para prosseguir.
- Na próxima janela, o painel esquerdo mostrará a pasta padrão da máquina de origem, e o painel direito exibirá a pasta padrão para o usuário no servidor de destino. Navegue até as pastas desejadas. No exemplo abaixo, clicamos com o botão direito em um arquivo para baixá-lo para o dispositivo do cliente. Alternativamente, você pode arrastar os arquivos de um lado para o outro.
Copiar um arquivo ou diretório usando OpenSSH
Para copiar um arquivo usando o Windows OpenSSH, você pode usar o seguinte comando do PowerShell. Observe que tanto o servidor quanto o cliente OpenSSH devem estar habilitados.
scp <filename> <username>@<hostname>:<directory_path>
Para copiar um diretório inteiro, use o seguinte comando.
scp -r <local_directory_path> <username>@<hostname>:<remote_directory_path>
Se o diretório não existir no servidor de destino, ele será criado (assumindo que você tenha permissão para fazer isso).
Você também pode copiar arquivos de ida e volta de servidores Linux e Unix para servidores e desktops Windows.
Como a Netwrix pode ajudar
Se você está movendo ou copiando arquivos de dados, é provável que precise proteger esses dados — não apenas durante a operação de transferência, mas ao longo de todo o seu ciclo de vida. Data access governance software da Netwrix oferece uma abordagem eficaz e escalável para o monitoramento de atividades de arquivos. Além disso, ajudará você a reduzir o risco de incidentes de cibersegurança, possibilitando entender quem tem acesso ao quê e limitar estritamente o acesso a dados sensíveis. Você pode:
- Audite atividades em todo o seu ecossistema de TI.
- Reduza o acesso a dados sensíveis ao mínimo necessário para diminuir o risco de insider threats e minimizar os danos causados por ransomware e outros ataques.
- Otimize as comprovações regulares de privilégios pelos proprietários dos dados.
- Proteja dados sensíveis onde quer que eles estejam com a marcação precisa e consistente de conteúdo.
Perguntas Frequentes
Como você move um arquivo usando SSH?
Ao trabalhar com sistemas semelhantes ao Unix, você pode usar o comando mv para mover um arquivo de um local para outro em um servidor remoto usando SSH.
Para máquinas Windows, você pode instalar um aplicativo de servidor e cliente SSH de terceiros ou ativar o recurso OpenSSH (requer Windows Server 2019 ou 2022, ou Windows 10 ou 11).
Em qualquer dos casos, você deve ter as credenciais de login para conectar, bem como as permissões necessárias para ler o arquivo na máquina de origem e permissão de escrita no diretório de destino.
O SSH permite a transferência de arquivos?
Sim. O SSH inclui o protocolo Secure Copy (SCP) e o protocolo SSH File Transfer (SFTP), que permitem a transferência segura de arquivos entre um host local e um host remoto.
Como posso transferir arquivos de um servidor SSH para uma máquina local?
Uma maneira de transferir um arquivo de um servidor OpenSSH para uma máquina com uma versão compatível do Windows ou Windows Server é usar o seguinte comando PowerShell:
scp C:\path\to\local\file username@remote-server:/path/to/remote/directory
- Substitua C:\path\to\local\file pelo caminho do arquivo que deseja copiar no seu computador local.
- Substitua username pelo nome de usuário no servidor remoto. (Será solicitada a senha.)
- Substitua remote-server pelo nome do host ou endereço IP do servidor remoto.
- Substitua path/to/remote/directory pelo caminho para o diretório no servidor remoto onde você deseja que o arquivo seja copiado.
Alternativamente, você pode usar utilitários SSH de terceiros que oferecem menus fáceis de usar.
Compartilhar em
Saiba Mais
Sobre o autor
Ethan Israel
Gerente de Produto
Ethan é um Gerente de Produto na Netwrix. Com mais de 10 anos de experiência na indústria de software, ele é responsável por construir e entregar o roteiro para o produto Netwrix Enterprise Auditor.