Tutorial/Admin/sshfs
De UnderLinux Wiki
Tabela de conteúdo |
Introdução
Eu estava a procura de uma maneira de fazer um "mount" de um sistema de arquivos em um servidor Linux utilizando o SSH. Para quem não sabe o SSH também faz transferência de arquivos e não apenas envio de comandos e recebimento de respostas.
Alguns podem me perguntar porque não utilizar o fish do KDE? A resposta é que no fish o acesso aos arquivos do servidor remoto não é tão transparente quanto ao montar um compartilhamento NFS ou Samba, pois, por baixo dos panos, ele ainda precisa transferir o arquivo inteiro antes de abri-los ou salvar.
Porque não utilizar o NFS ou o Samba? Simples. Porque com este método não é necessário configuração nenhuma no servidor além do sshd nativo.
Requerimento
- sshfs (Presente no CD de instalação)
Carregando o módulo fuse
Para o funcionamento do sshfs é necessário o carregamento do módulo do kernel fuse.
Carregue com:
# modprobe fuse
Automatizando
Para automatizar o carregamento do módulo, adicione ao arquivo /etc/rc.d/boot.local sequinte linha:
/sbin/modprobe fuse teste
Montando
Para fazer uma montagem logicamente necessitamos de um ponto de montagem, então é isto que criaremos aqui:
# mkdir /mnt/sshfs
Agora podemos montar. Com o comando sshfs -h você encontrará diversas opções mas nada mais praticamente as mesmas opções encontradas no ssh. Utilizaremos a seguinte sintaxe:
$ sshfs usuario@<ip_do_servidor>:<pasta_do_servidor> /mnt/sshfs
Reparem que o comando pode ser executado como usuário comum.
Considerações
Eu não fiz uma montagem permanente com o fstab pois terá necessidade de utilizar uma chave RSA para autenticação automática, tendo em vista que o sshfs pede senha da mesma forma que o ssh o que impossibilita a montagem sem intervenção humana.
Referências
Corrigindo os erros
Por obra do além o módulo do fuse simplesmente parou de ser carregado com o comando modprobe. Verifiquei no modprobe.deb e o caminho do módulo está ok. Todavia ele não apresenta nenhum erro ao ser executado mas simplesmente não carrega. </> <p style="text-indent: 26px;" align="justify"> Para resolver isso eu utilizei o comando insmod que tem como parâmetro o caminho do módulo e não busca no modprobe.deb como o modprobe faz.
Então faremos o seguinte:
# insmod /lib/modules/2.6.18.2-34-default/kernel/fs/fuse/fuse.ko
Substitua logicamente o 2.6.18.2-34-default pelo que kernel.
Automatizando
Para automatizar este processo de carregamente basta colocar a mesma linha no arquivo /etc/rc.d/boot.local.
Autor
- White Tiger (itihoitiho [NOSPAM] gmail.com)


