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.
Conteúdo
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:
- Confira o seu acesso SSH usando um desses comandos:
ssh usuario@servidor_endereçodeip ssh usuario@hostremoto_nomededominio
- Assim que estiver pronto, saia da sessão – se nenhum erro tiver ocorrido.
- Inicie uma conexão SFTP com os seguintes comandos:
sftp usuario@servidor_endereçodeip sftp usuario@hostremoto_nomededominio
- 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
- 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!