Como transferir arquivos com segurança no Linux com sftp

Este guia explorará como usar o sftp (SSH File Transfer Protocol), um programa de linha de comando para a transferência segura de arquivos entre dois computadores Linux em uma rede.

O que é SFTP?

Antes de definir o SFTP, é importante dar um passo atrás e entender o FTP (File Transfer Protocol), o predecessor do SFTP.

FTP é um protocolo de comunicação de rede usado para transferir arquivos entre dois computadores em uma rede, normalmente entre um servidor e um cliente.

SFTP é uma versão mais segura do FTP. Ele mantém a segurança criptografando os dados trocados entre dois computadores, utilizando o protocolo SSH (Secure Shell). O FTP, por outro lado, transmite os dados como texto simples em uma rede.

O SFTP também pode ajudar você e sua organização a atingir certos regulamentos de conformidade, como GDPR ou CCPA, que exigem que dados confidenciais sejam transferidos da maneira mais segura possível.

Acessando um PC Remoto

O Linux permite principalmente a transferência de arquivos com SFTP por meio do programa sftp . Sftp é um software de linha de comando robusto que permite transferir arquivos por SSH de forma segura e interativa.

Você pode se conectar a um servidor remoto por meio do sftp usando o seguinte comando. Lembre-se de substituir os espaços reservados " nome de usuário " e " endereço-ip-do-pc-remoto " pelo nome de usuário e endereço IP corretos do servidor.

 sftp username@ip-address-of-remote-pc

Digite a senha do servidor, se solicitado. Se o terminal o cumprimenta com o status Conectado , significa que você conseguiu estabelecer uma conexão. O cursor piscando simplesmente mostra que o sftp está no modo interativo.

Observação : se você não tiver um servidor remoto com o qual interagir, experimente o sftp localmente executando o seguinte comando:

 sftp 127.0.0.1

Comandos sftp interativos

Uma vez no modo interativo, existem vários comandos que você pode usar para interagir com o PC remoto. Alguns dos comandos mais importantes são descritos a seguir. Observe que, ao contrário da maioria dos comandos do Linux, os comandos sftp não diferenciam maiúsculas de minúsculas.

Listando arquivos em um servidor remoto

Uma das tarefas mais importantes é listar os arquivos em um diretório para que você tenha uma ideia do que deseja transferir. Você também pode obter informações sobre arquivos e pastas do PC remoto, incluindo o tamanho e as permissões dos arquivos armazenados.

Para listar arquivos em seu PC remoto, você pode usar o seguinte comando:

 ls

Você pode usar a maioria dos sinalizadores de comando ls , como -a , -l , etc. e eles funcionarão bem.

Para listar arquivos em seu PC local de trabalho, você pode usar o seguinte comando:

 lls

Listando o diretório de trabalho atual

Você também pode enviar o caminho do diretório de trabalho atual no PC remoto com pwd . O comando pwd significa Diretório de Trabalho Presente .

 pwd

Para listar o diretório de trabalho atual em seu PC local:

 lpwd

Use o atalho de teclado Ctrl + L para limpar a saída do terminal interativo.

Carregando arquivos para um servidor

Use o comando put para transferir arquivos de seu PC local para um servidor remoto. Por exemplo, para transferir uma imagem ISO do Linux Manjaro de sua pasta pessoal, use o comando abaixo. Você pode usar o sinalizador -R para copiar um diretório recursivamente.

 put manjaro-xfce-21.0.7-minimal-210614-linux54.iso

A saída será semelhante à mostrada abaixo. O Sftp exibirá o andamento da transferência do arquivo em tempo real.

Além disso, como o caminho do arquivo para o servidor remoto não foi especificado, o sftp colocará o arquivo em um caminho semelhante ao do PC local.

Se você deseja copiar vários arquivos, use o comando mput . Por exemplo, para copiar todos os arquivos de planilhas do Excel (XLS) em um diretório:

 mput *.xls

Para interromper ou parar a transferência de um arquivo para o servidor, você pode usar o atalho de teclado Ctrl + C.

Baixando arquivos de um servidor

Use o comando get para baixar arquivos do servidor para o PC local. Por exemplo, para copiar um arquivo HTML denominado index.html do servidor, basta executar o seguinte comando:

 get index.html

Para obter vários arquivos do servidor, use o comando mget . Por exemplo, para copiar todos os arquivos HTML do diretório de trabalho atual do servidor para o seu sistema local:

 mget *.html

Alterando Permissões de Arquivo

Você também pode alterar as permissões de um arquivo no servidor remoto dentro do terminal interativo usando o comando chmod . Por exemplo, para conceder todas as permissões de acesso ao arquivo index.html , execute o seguinte comando:

 chmod 777 index.html

Saia da sessão sftp

Para sair do terminal interativo sftp, você pode simplesmente digitar o comando bye . Como alternativa, você também pode usar os comandos exit ou quit .

Obtendo Ajuda da Linha de Comando

Em vez de memorizar comandos, é melhor aprender como obter ajuda na linha de comando sempre que precisar.

Sftp vem com boa documentação. Basta digitar um dos comandos a seguir para obter ajuda na janela do terminal interativo.

 help?

Aplicações Práticas de SFTP

Este guia mostrou como transferir dados de forma segura e interativa entre computadores Linux usando o comando sftp. Se por acaso você é um usuário do Raspberry Pi, também pode estar interessado em aprender diferentes maneiras de transferir dados do Raspberry Pi para um PC.