Pesquisa de site

Como fazer upload ou download de arquivos/diretórios usando sFTP no Linux


sFTP (Secure File Transfer Program) é um programa de transferência de arquivos seguro e interativo, que funciona de maneira semelhante ao FTP (File Transfer Protocol). No entanto, o sFTP é mais seguro que o FTP; ele lida com todas as operações em um transporte SSH criptografado.

Ele pode ser configurado para usar vários recursos SSH úteis, como autenticação e compactação de chave pública. Ele se conecta e faz login na máquina remota especificada e alterna para um modo de comando interativo onde o usuário pode executar vários comandos.

Neste artigo, mostraremos como fazer upload/download de um diretório inteiro (incluindo seus subdiretórios e subarquivos) usando sFTP.

Como usar sFTP para transferir arquivos/diretórios no Linux

Por padrão, o SFTP adota o mesmo transporte SSH para estabelecer uma conexão segura com um servidor remoto. Embora as senhas sejam usadas para autenticar usuários de forma semelhante às configurações SSH padrão, é recomendado criar e usar login SSH sem senha para uma conexão simplificada e mais segura a hosts remotos.

Conecte-se ao servidor FTP remoto com segurança

Para conectar-se a um servidor SFTP remoto, primeiro estabeleça uma conexão SSH segura e, em seguida, crie uma sessão SFTP conforme mostrado.

sftp [email 

Depois de fazer login no host remoto, você pode executar comandos sFTP interativos como nos exemplos abaixo:

sftp> ls			#list directory 
sftp> pwd			#print working directory on remote host
sftp> lpwd			#print working directory on local host
sftp> mkdir uploads		#create a new directory

Como fazer upload de um diretório usando SFTP

Para fazer upload de um diretório inteiro para um host Linux remoto, use o comando put. No entanto, você receberá um erro se o nome do diretório não existir no diretório de trabalho do host remoto, conforme mostrado na imagem abaixo.

Portanto, primeiro crie um diretório com o mesmo nome no host remoto, antes de carregá-lo do host local, o -r faz a mágica, permitindo que subdiretórios e subarquivos também sejam copiados:

sftp> put -r  linux-console.net-articles
sftp> mkdir linux-console.net-articles
sftp> put -r linux-console.net-articles

Para preservar os tempos de modificação, tempos de acesso e modos dos arquivos originais transferidos, use o sinalizador -p.

sftp> put -pr linux-console.net-articles

Como baixar um diretório usando SFTP

Para baixar um diretório inteiro chamado fstools-0.0 do host Linux remoto para a máquina local, use o comando get com o sinalizador -r da seguinte forma:

sftp> get -r fstools-0.0

Em seguida, verifique no diretório de trabalho atual no host local se o diretório foi baixado com todo o conteúdo nele.

Para encerrar o shell SFTP, digite:

sftp> bye
OR
sftp> exit

Além disso, leia os comandos SFTP e dicas de uso.

Observe que para evitar que os usuários acessem todo o sistema de arquivos no host remoto, por motivos de segurança, você pode restringir os usuários SFTP aos seus diretórios pessoais usando chroot Jail.

É isso! Neste artigo, mostramos como fazer upload/download de um diretório inteiro usando SFTP. Use a seção de comentários abaixo para nos oferecer sua opinião sobre este artigo/tópico.