Como Usar SFTP (SSH File Transfer Protocol)

Como Usar SFTP (SSH File Transfer Protocol)

FTP é o método padrão para transferir arquivos ou outros tipos de dados entre dois computadores, mas está se tornando mais e mais defasado no ambiente focado em segurança que temos hoje. Felizmente, é aí que entra o SFTP, o que é particularmente útil para usuários de hospedagem VPS.

Neste guia, vamos mostrar como usar o SFTP para assegurar as suas transferências de arquivos, falar sobre alguns outros comandos úteis e explicar melhor como ele funciona.

Como se Conectar Através do SFTP

O SFTP é um subsistema do SSH. Portanto, ele suporta todos os métodos de autenticação SSH. Enquanto pode ser fácil configurar e usar autenticação por senha, é muito mais conveniente e seguro criar chaves SSH para ter um login de SFTP sem senha.

Você pode conferir este tutorial sobre como configurar as suas chaves SSH. Uma vez que você estiver pronto, siga os passos abaixo para se conectar usando o SFTP:

  1. Confira o seu acesso SSH usando um desses comandos:
    ssh usuario@servidor_endereçodeip
    ssh usuario@hostremoto_nomededominio
  2. Assim que estiver pronto, saia da sessão – se nenhum erro tiver ocorrido.
  3. Inicie uma conexão SFTP com os seguintes comandos:
    sftp usuario@servidor_endereçodeip
    sftp usuario@hostremoto_nomededominio
  4. Se você está usando uma porta SSH customizada, use um desses comandos para modificar a porta SFTP:
    sftp -oPort=customport usuario@servidor_endereçodeip
    sftp -oPort=customport usuario@hostremoto_nomededominio
  5. Aqui está como deverá ficar o comando final:
    sftp -oPort=49166 user@31.220.57.32

Uma vez que você tiver se conectado, verá um prompt do SFTP.

Como Transferir Arquivos com o SFTP

Aqui, nós vamos mostrar como transferir arquivos remotos para o sistema local usando SFTP e vice-versa.

NOTA: você também pode transferir os seus arquivos usando clientes SFTP, como o WinSCP ou o FileZilla. Se você está interessado neste último, confira nosso tutorial aqui.

Transferir Arquivos de um Servidor Remoto à Máquina Local usando SFTP

Para começar, vamos conferir qual local e qual diretório operacional remoto estamos usando. Para fazer isso, vamos usar estes comandos SFTP:

sftp> lpwd
Local directory: /LocalDirectory
sftp> pwd
Remote directory: /RemoteDirectory

Agora, vamos ver como transferir um arquivo de um servidor remoto para sua máquina local usando o comando get. A sintaxe básica do comando get é:

get /remote-directory/file.txt

Para copiar o arquivo /etc/xinetd.conf do servidor remoto para sua máquina local, você usaria o comando: 

get /etc/xinetd.conf

Depois do download, você poderá encontrar o arquivo xinetd.conf no diretório /user/home da sua máquina local.

Para fazer download de diversos arquivos, use o comando mget. Para baixar todos os arquivos com extensão .conf num diretório chamado /etc no seu diretório operacional atual, você vai usar o seguinte comando:

mget /etc/*.conf

Depois do download, você pode encontrar todos os arquivos *.conf no diretório /user/home da sua máquina local.

Transferir Arquivos da Máquina Local Para um Servidor Remoto Usando SFTP

Para copiar um arquivo de uma máquina local (conectado SFTP) para o servidor remoto use o comando get. A sintaxe do comando get é: 

get file.txt /RemoteDirectory

Aqui está como transferir o arquivo example.txt de uma máquina local para uma máquina remoto:

put /home/edward/example.txt /root

Aqui, nós iremos encontrar o arquivo no diretório root da máquina de destino (servidor remoto).

Você também pode tentar transferir arquivos múltiplos usando o comando mput. Ele funciona como o mget:

mput/home/edward/*.txt /root

Esse comando irá transferir todos os arquivos com a extensão .txt para o diretório /home/edward da máquina local para o diretório /root da máquina remota.

NOTA: Tenha em mente que, para fazer download e subir os arquivos, você precisa digitar o comando put ou get e clicar na tecla TAB.

Comandos para Navegar com o SFTP

Alguns comandos podem ser usados para navegar através dos servidores remotos e locais de maneira mais eficiente com o SFTP. Eles são similares àqueles que você usaria no prompt do Linux shell.

Por exemplo, o comando pwd é sempre útil para deixar você saber em que diretório está trabalhando atualmente

sftp> pwd
Remote directory: /RemoteDirectory

ou

sftp> lpwd
Local directory: /LocalDirectory

Você também pode exibir a lista de arquivos e diretórios que está usando para um diretório remoto:

ls

De maneira similar, para o diretório operacional local:

lls

Por exemplo, a saída desse comando será algo parecido com isso:

Pictures     Templates     Media     Text.txt     Documents

Para mudar de um diretório operacional remoto para outro, insira os seguintes comandos:

cd name_of_directory
lcd name_of_directory

Finalmente, use os comandos ! e exit para voltar para o shell local e sair do SFTP.

O Básico para Manutenção de Arquivos usando SFTP

Com o SFTP, você também pode gerenciar diretórios ou arquivos usando comandos específicos.

Para conferir o espaço em disco de um servidor remoto em gigabytes, use a função df da seguinte maneira:

df -h

Aqui está um exemplo de saída:

Filesystem         Size  Used Avail Use% Mounted on
/dev/ploop29212p1   59G  2.5G   56G   5% /
none               1.5G     0  1.5G   0% /sys/fs/cgroup
none               1.5G     0  1.5G   0% /dev
tmpfs              1.5G     0  1.5G   0% /dev/shm
tmpfs              1.5G  568K  1.5G   1% /run
tmpfs              308M     0  308M   0% /run/user/0

Use o comando mkdir para criar um novo diretório no servidor remoto ou no local:

mkdir name_of_directory
lmkdir name_of_directory

Você pode deletar um do servidor remoto usando o comando rmdir:

rmdir name_of_directory

Enquanto isso, renomear um arquivo remoto também é algo bem simples e direto:

rename filename new_filename

Aqui está um exemplo:

rename Old_FileExample New_FileExample

Se você quer remover um arquivo remoto, use o comando rm:

rm filename

Enquanto isso, o comando chown é usado para substituir o proprietário de um arquivo:

chown userid filename

O userid pode ser tanto um nome de usuário quanto um ID número de usuário. Por exemplo:

chown UserOne FileExample
chown 1234 FileExample

O chgrp é usado para mudar o grupo proprietário de um arquivo:

chgrp groupid filename

Por exemplo:

chgrp NewGroup FileExample

Finalmente, você precisa usar o comando interativo chmod para mudar as permissões de um arquivo:

chmod 764 FileExample

Neste exemplo, o valor de três dígitos representa os usuários user, grupo e other do arquivo.

Já sobre as permissões read (r), write (w) e execute (x), os seus valores são 4, 2 e 1, respectivamente. O 0 também pode ser usado para não fornecer nenhuma permissão.

Para definir permissões, simplesmente calcule os valores totais de cada classe de usuário. Aqui estão detalhes do exemplo:

chmod ugo FileExample
# u representa o Usuário (User) que poderá ler, escrever e executar o arquivo.
# g é apra Groups, aqui nós damos a permissão para escrever e executar o arquivo.
# o ou Others só poderá ler o arquivo.

Lista de Comandos SFTP Úteis

Se você precisa de uma lista rápida de comandos, aqui estão todos os disponíveis para o SFTP. Você pode encontrar esta lista por conta própria simplesmente ao inserir os comandos help ou ? – ambos vão oferecer o mesmo resultado.

bye                                Sair do sftp
cd path                            Mudar o diretório remoto para 'path'
chgrp [-h] grp path                Mudar o grupo do arquivo 'path' para 'grp'
chmod [-h] mode path               Mudar permissões do arquivo 'path' para 'mode'
chown [-h] own path                Mudar propriedade do arquivo 'path' para 'own'
df [-hi] [path]                    Exibir estatísticas para o atual diretório ou sistema de arquivos contendo 'path'
exit                               sair do sftp
get [-afpR] remote [local]         Baixar arquivo
help                               Exibir este texto de ajuda
lcd path                           Mudar diretório local para 'path'
lls [ls-options [path]]            Exibir listagem do diretório local
lmkdir path                        Criar diretório local
ln [-s] oldpath newpath            Linkar arquivo remoto (-s para symlink)
lpwd                               Imprimir diretório operacional local
ls [-1afhlnrSt] [path]             Exibir listagem remota de diretório
lumask umask                       Definir local umask para 'umask'
mkdir path                         Criar diretório remoto
progress                           Habilitar a exibição do medidor de progresso
put [-afpR] local [remote]         Upload de arquivo
pwd                                Exibir diretório operacional remoto
quit                               Sair do sftp
reget [-fpR] remote [local]        Continuar downloa de arquivo
rename oldpath newpath             Renomear arquivo remoto
reput [-fpR] local [remote]        Resumir upload de arquivo
rm path                            Deletar arquivo remoto
rmdir path                         Remover diretório remoto
symlink oldpath newpath            Arquivo remoto Symlink
version                            Mostrar versão SFTP
!command                           Executar 'command' no local shell
!                                  Escapar para local shell

O Que é SFTP?

SFTP, ou SSH File Transfer Protocol, é uma maneira muito mais segura de mover arquivos. Usando o protocolo SSH, ela suporta criptografia e outros métodos de segurança usados para melhor proteger transferências de arquivos.

É o único protocolo de transferência de arquivos que protege contra ataques em qualquer ponto do processo de transferência de dados, sendo então o protocolo preferido.

Durante a transferência de arquivos, todos os dados são divididos em pacotes e enviados através de uma única conexão segura.

Informações sensíveis serão criptografadas e não poderão ser lidas enquanto estão sendo transferidas entre o cliente e o servidor. Em outras palavras, o conteúdo original (plaintext) será substituído por uma string de caracteres incoerentes (chipertext).

Apenas que vai receber as informações e terá uma chave de decodificação que poderá ver o conteúdo original. Isso evita qualquer acesso não autorizado na transferência de arquivos.

O FTP tradicional possui dois canais diferentes para trocar dados, o canal de comando e o canal de dados. Por outro lado, o SFTP possui apenas um canal criptografado no qual os dados são trocados em pacotes criptografados e formatados.

Conclusão

Isso cobre todos os aspectos básicos de como usar o SFTP para assegurar a transferência de arquivos. Esperamos que esse tutorial tenha sido útil para você.

Contudo, se você precisar de mais informações sobre FTP tradicional, você pode encontrar mais tutoriais aqui.

Pronto! Agora você sabe o básico sobre SFTP! Não foi tão difícil, não é? Espero que este tutorial tenha ajudado e te vejo na próxima!

Author
O autor

Ariane G.

A Ariane é SEO Team Leader com experiência em conteúdo, localização e SEO. Seu desafio é levar a Hostinger ao topo dos resultados no Brasil, França e Reino Unido. Eventualmente ela compartilha seu conhecimento no blog e nos tutoriais da Hostinger e no tempo livre ela gosta de explorar lugares novos e viver intencionalmente.