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.