Pesquisa de site

Como montar um sistema de arquivos ou diretório Linux remoto usando SSHFS sobre SSH


O principal objetivo ao escrever este artigo é fornecer um guia passo a passo sobre como montar um sistema de arquivos Linux remoto usando o cliente SSHFS sobre SSH.

Este artigo é útil para usuários e administradores de sistema que desejam montar sistemas de arquivos remotos em seus sistemas locais para qualquer finalidade. Fizemos testes práticos instalando o cliente SSHFS em um de nossos sistemas Linux e montando sistemas de arquivos remotos com sucesso.

Antes de prosseguirmos com a instalação, vamos entender sobre SSHFS e como ele funciona.

O que é SSHFS?

SSHFS significa cliente (Secure SHell FileSystem) que nos permite montar sistemas de arquivos remotos e interagir com diretórios e arquivos remotos em uma máquina local usando SSH Protocolo de transferência de arquivos (SFTP).

Leitura sugerida: 10 exemplos de comando sFTP para transferir arquivos em servidores remotos no Linux

SFTP é um protocolo seguro de transferência de arquivos que fornece acesso a arquivos, transferência de arquivos e recursos de gerenciamento de arquivos através do protocolo Secure Shell. Porque o SSH usa criptografia ao transferir arquivos pela rede de um computador para outro e o SSHFS vem com FUSE integrado (sistema de arquivos no espaço do usuário) módulo do kernel que permite que qualquer usuário não privilegiado crie seu sistema de arquivos sem modificar o código do kernel.

Neste artigo, mostraremos como instalar e usar o cliente SSHFS em qualquer distribuição Linux para montar um sistema de arquivos ou diretório Linux remoto em uma máquina Linux local.

Etapa 1: Instale o cliente SSHFS em sistemas Linux

Por padrão, os pacotes sshfs não existem em todas as principais distribuições Linux, você precisa habilitar o repositório epel em seus sistemas Linux para instalar sshfs com a ajuda do comando Yum com suas dependências.

yum install sshfs
dnf install sshfs              [On Fedora 22+ releases]
sudo apt-get install sshfs     [On Debian/Ubuntu based systems]

Etapa 2: Criando diretório de montagem SSHFS

Depois que o pacote sshfs for instalado, você precisará criar um diretório de ponto de montagem onde montará seu sistema de arquivos remoto. Por exemplo, criamos o diretório de montagem em /mnt/tecmint.

mkdir /mnt/tecmint
sudo mkdir /mnt/tecmint     [On Debian/Ubuntu based systems]

Etapa 3: montando sistema de arquivos remoto com SSHFS

Depois de criar seu diretório de ponto de montagem, execute agora o seguinte comando como um usuário root para montar o sistema de arquivos remoto em /mnt/tecmint . No seu caso, o diretório de montagem seria qualquer coisa.

O comando a seguir montará o diretório remoto chamado /home/tecmint em /mnt/tecmint no sistema local. (Não se esqueça de substituir x.x.x.x pelo seu endereço IP e ponto de montagem).


sshfs [email :/home/tecmint/ /mnt/tecmint
sudo sshfs -o allow_other [email :/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

Se o seu servidor Linux estiver configurado com autorização baseada em chave SSH, você precisará especificar o caminho para suas chaves públicas conforme mostrado no comando a seguir.


sshfs -o IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint
sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

Etapa 4: verificar se o sistema de arquivos remoto está montado

Se você executou o comando acima com sucesso e sem erros, você verá a lista de arquivos e diretórios remotos montados em /mnt/tecmint.

cd /mnt/tecmint
ls
[root@ tecmint]# ls
12345.jpg                       ffmpeg-php-0.6.0.tbz2                Linux                                           news-closeup.xsl     s3.jpg
cmslogs                         gmd-latest.sql.tar.bz2               Malware                                         newsletter1.html     sshdallow
epel-release-6-5.noarch.rpm     json-1.2.1                           movies_list.php                                 pollbeta.sql
ffmpeg-php-0.6.0                json-1.2.1.tgz                       my_next_artical_v2.php                          pollbeta.tar.bz2

Etapa 5: Verificando o ponto de montagem com o comando df -hT

Se você executar o comando df -hT você verá o ponto de montagem do sistema de arquivos remoto.

df -hT
Saída de amostra
Filesystem                          Type        Size  Used Avail Use% Mounted on
udev                                devtmpfs    730M     0  730M   0% /dev
tmpfs                               tmpfs       150M  4.9M  145M   4% /run
/dev/sda1                           ext4         31G  5.5G   24G  19% /
tmpfs                               tmpfs       749M  216K  748M   1% /dev/shm
tmpfs                               tmpfs       5.0M  4.0K  5.0M   1% /run/lock
tmpfs                               tmpfs       749M     0  749M   0% /sys/fs/cgroup
tmpfs                               tmpfs       150M   44K  150M   1% /run/user/1000
[email :/home/tecmint fuse.sshfs  324G   55G  253G  18% /mnt/tecmint

Leitura sugerida: 12 comandos “df” úteis para verificar o espaço em disco no Linux

Etapa 6: Montando sistema de arquivos remoto permanentemente

Para montar o sistema de arquivos remoto permanentemente, você precisa editar o arquivo chamado /etc/fstab. Para fazer isso, abra o arquivo com seu editor favorito.

vi /etc/fstab
sudo vi /etc/fstab     [On Debian/Ubuntu based systems]         

Vá para o final do arquivo e adicione a seguinte linha, salve o arquivo e saia. A entrada abaixo monta o sistema de arquivos do servidor remoto com configurações padrão.


sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0

Certifique-se de ter login sem senha SSH entre os servidores para montar automaticamente o sistema de arquivos durante as reinicializações do sistema.

Se o seu servidor estiver configurado com autorização baseada em chave SSH, adicione esta linha:


sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0

Em seguida, você precisa atualizar o arquivo fstab para refletir as alterações.

mount -a
sudo mount -a   [On Debian/Ubuntu based systems]

Etapa 7: desmontando o sistema de arquivos remoto

Para desmontar o sistema de arquivos remoto, emita o seguinte comando para desmontar o sistema de arquivos remoto.

umount /mnt/tecmint

Por enquanto é tudo, se você estiver enfrentando alguma dificuldade ou precisar de ajuda para montar um sistema de arquivos remoto, entre em contato conosco através de comentários e se achar que este artigo é muito útil, compartilhe-o com seus amigos.