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.