15 de maio de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Como usar SSHFS no Raspberry Pi

Como usar SSHFS

Nesse artigo veremos como usar SSHFS, seja Raspberry, outra placa ou outra arquitetura. A sintaxe será a mesma para qualquer Linux e, vejam só, dá pra utilizá-lo também com Windows. Mas no Windows não tenho como testar porque em casa todos os computadores rodam apenas Linux.

Com SSHFS você deverá ter um diretório compartilhado entre diferentes computadores como se fosse um compartilhamento de Windows. Depois de fazer a parte manual, poderá utilizar o gerenciador de arquivos para acessar e manipular os arquivos contidos no diretório compartilhado.

O que é SSHFS?

Existem vários sistemas de arquivos em rede, como o NFS e SAMBA, que são os mais populares. Assim como cada um dos dois citados cabe em uma situação específica, o SSHFS também tem seu lugar.

No Linux normalmente temos o SSHFS por padrão, bastando “montá-lo”. O termo “montagem” é utilizado para disponibilização de dispositivos de massa, seja local (pendrive, HD, SSD) ou remoto (dispositivos de armazenamento em rede, como SAMBA, AD, NFS).

Como usar o SSHFS

Se não estiver disponível no sistema, no Debian e suas variações podemos instalá-lo assim:

sudo apt-get install sshfs

Para permitir montagem remota do sistema de arquivos, no Raspberry Pi e no host edite o arquivo /etc/fuse.conf e descomente (remova a cerquilha) a linha user_allow_other mount_max . Ela deve ficar assim:

# /etc/fuse.conf - Configuration file for Filesystem in Userspace (FUSE)

# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.

mount_max = 1000

# Allow non-root users to specify the allow_other or allow_root mount options.
user_allow_other

Crie um diretório para compartilhar e se necessário, dê total permissão a ele:

mkdir /home/pi/shared
chmod 0777 /home/pi/shared

E crie um diretório no outro computador também:

mkdir sshfs_pi
chmod 0777

Para montar o diretório do RPi localmente, use:

sshfs  pi@192.168.1.2:/home/pi/shared /home/djames/sshfs_pi/ -o allow_other,default_permissions

Para testar, crie um arquivo dentro do diretório compartilhado em qualquer um dos hosts (ou nos dois, como na imagem de destaque). Fácil ou não?

Quando terminar de usar, poderá “desmontar” o compartilhamento:

sudo umount /home/djames/sshfs_pi

Como iniciar o SSHFS com o sistema

Dá pra fazer de diversas formas, como criando um serviço de sistema, fazendo um script para iniciar no ~/.profile ou diretamente através do /etc/fstab, que é o arquivo de pontos de montagem do sistema operacional. A linha de montagem no fstab deve ficar assim:

pi@192.168.1.2:/home/pi/shared  /home/djames/sshfs_pi  fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/djames/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=1000 0 0

A sintaxe é usuário@ip:DIRETORIO_REMOTO DIRETORIO_LOCAL <opções de montagem>.

Nas opções de montagem temos uidgid, que é o ID do usuário e o ID do grupo do usuário. Uma das maneiras de saber quais são esses IDs é através do arquivo /etc/passwd:

UID e GID - Como usar SSHFS

Como usar SSHFS com Windows

Para Windows, instale o WinFsp e também SSHFS-Win. Siga as instruções desse repositório. Se quiser um programa gráfico, pode experimentar o SSHFS-Win Manager ou o SiriKali, que é multiplataforma:

SiriKali - Como usar SSHFS

Adicione os parâmetros como se fosse a montagem por linha de comando. Ele oferece a opção de montar automaticamente no boot também. Depois de adicionado, o host ficará disponível em Favorites:

SiriKali - favoritos

E daí por diante. Particularmente, não gosto de usar interface gráfica para configurações de sistema. Acho que dá mais trabalho entender o programa do que digitar um comando direto e objetivo, mas fica a critério de cada um.

Vídeo

Fiz um vídeo mostrando o funcionamento do recurso, utilizando uma VM Ubuntu no host Linux do meu computador. Veja como usar sshfs na prática.

Até a próxima!

 

Revisão: Ricardo Amaral de Andrade