Como Usar SFTP (SSH File Transfer Protocol)

Você está aqui:

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.

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.

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

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 shelllocal 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

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

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 other do arquivo.

Já sobre as permissões read (r)write (w) e execute (x), os seus valores são 42 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ê.

Was this article helpful?
Dislike 0