O protocolo SSH (Secure Shell) é um protocolo de rede para gerenciamento remoto de sistemas operacionais via linha de comando. É amplamente considerado o padrão para acesso remoto a máquinas *nix. Ele permite login seguro em um servidor, execução remota de comandos, gerenciamento de arquivos (criar, excluir, copiar etc.) e muito mais. A maioria dos provedores de nuvem exige SSH para acessar seus serviços. Neste artigo, veremos como copiar arquivos via SSH em sistemas Windows e Linux.
O SSH pode transmitir com segurança qualquer tipo de dado (áudio, vídeo, dados de protocolo) por meio de um canal criptografado. Diferente de protocolos obsoletos e inseguros como Telnet e rlogin, o SSH garante confidencialidade e autenticidade — essenciais para a comunicação na Internet.
Veja como é estabelecida uma conexão segura entre cliente e servidor:
Conexão TCP: Por padrão, o servidor escuta na porta 22. Ambas as partes compartilham uma lista de algoritmos compatíveis (compressão, criptografia, troca de chaves) e concordam em quais usar.
Autenticação: Para evitar falsificação de identidade, ambas as partes verificam suas identidades usando criptografia assimétrica (pares de chaves pública/privada). O servidor é autenticado primeiro. Na primeira conexão, o cliente exibe um aviso com detalhes do servidor. As chaves dos servidores confiáveis são armazenadas em /home/<username>/.ssh/known_hosts.
Geração de chave: Depois que o servidor é verificado, ambas as partes geram uma chave simétrica para criptografar todos os dados trocados.
Autenticação do usuário: É feita usando senha ou chave pública enviada pelo cliente e armazenada no servidor em /home/<username>/.ssh/authorized_keys.
A implementação mais popular no Linux é o OpenSSH, que vem pré-instalado na maioria das distribuições (Ubuntu, Debian, RHEL etc.). No Windows, clientes como PuTTY ou MobaXterm são usados. Desde o Windows 10 e Server 2019, as ferramentas OpenSSH também estão disponíveis nativamente.
Duas ferramentas principais para copiar arquivos no Linux são scp e sftp. Ambas vêm com o OpenSSH.
O SSH suporta duas versões de protocolo: 1 e 2. O OpenSSH suporta ambas, mas a versão 1 raramente é usada.
Para ativar o autocompletar com Tab ao usar scp, configure a autenticação por chave pública:
Gerar um par de chaves:
ssh-keygen
Saída esperada:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Por padrão, as chaves (id_rsa para privada e id_rsa.pub para pública) são salvas em ~/.ssh/.
Copiar a chave pública para a máquina remota:
ssh-copy-id [username]@[ip-address]
Após inserir a senha do usuário, uma mensagem confirmará que a chave foi adicionada.
Para transferências pequenas (por exemplo, arquivos de configuração), scp é ideal.
Copiar de local para remoto:
scp test.txt user@192.168.1.29:/home/user/
Copiar vários arquivos:
scp test1.txt test2.txt user@192.168.1.29:/home/user/
Copiar de remoto para local:
scp user@192.168.1.29:/home/user/test.txt ~/
Copiar diretórios:
scp -r testdir user@192.168.1.29:/home/user/
Copiar de remoto para remoto:
scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/
SFTP é outra ferramenta incluída no OpenSSH. Desde OpenSSH 9.0, scp usa SFTP por padrão em vez do protocolo SCP/RCP.
Ao contrário do FTP clássico, sftp transmite dados criptografados por meio de um túnel seguro. Não é necessário um servidor FTP separado.
Exemplo de uso:
sftp misato@192.168.1.29
sftp> ls
sftp> lcd testdir/
sftp> get test.txt
sftp> bye
Gerenciadores de arquivos gráficos como Midnight Commander e Nautilus também usam sftp. No Nautilus, o servidor remoto aparece como uma pasta local, por exemplo user@ip.

No Windows, use a ferramenta de linha de comando pscp do PuTTY para copiar arquivos.
Copiar para o servidor:
pscp C:\server\test.txt misato@192.168.1.29:/home/misato/
Copiar do servidor:
pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txt
Listar arquivos no servidor remoto:
pscp -ls user@192.168.1.29:/home/misato
Usar aspas para caminhos com espaços:
pscp "C:\dir\bad file name.txt" misato@192.168.1.29:/home/misato/
Exibir ajuda:
pscp
Vimos como copiar arquivos de e para um servidor usando o protocolo seguro SSH. Se você trabalha com servidores em nuvem, entender SSH é essencial — é o método padrão de acesso remoto a máquinas *nix e uma parte fundamental do trabalho diário de DevOps e administração de sistemas.