Montar pastas remotas usando sshfs e sem senhas.

Em função de um artigo anterior “Integrando o nautilus a rede Linux” algumas pessoas ficavam me enviando mensagens particulares perguntando como seria possivel fazer a mesma coisa só que genericamente, isto é, independemente do gerenciador de aquivos. A solução é simples : sshfs !

Primeiramente vamos à um método pouco divulgado que chama-se autenticação por chaves DSA, este método suprime o login e senha e basta ter uma chave correspondente no servidor e o caminho estará livre para compartilhar arquivos ou sessões. Funciona assim :

Digite na sua estação de trabalho :

cd ~
ssh-keygen -t dsa

Se voce não tem nenhuma experiência com o SSH e o uso de chaves então pressione [ENTER] quando solicitado o “passphrases” (palavra chave), com isso será criado um arquivo ~/.ssh/id_dsa.pub que deverá ser enviado a todos os servidores que voce pretende se conectar por ssh. Como enviar este arquivo para os servidores ? Assim :

ssh-copy-id -i ~/.ssh/id_dsa.pub root@ip.do.servidor

Lhe será solicitado a senha do usuário em questão pela última vez. No exemplo acima, a senha a ser utilizada é do usuário “root”.

Vamos testar :

scp root@ip.do.servidor:/etc/issue /tmp/

O exemplo acima vai copiar do servidor ip.do.servidor o arquivo /etc/issue para a pasta /tmp. Se tudo der certo, então nenhuma senha será requerida e tal arquivo será copiado.

Pressupondo que você tenha instalado corretamente as chaves em todos os servidores, agora vamos montar a unidade remota. Existem dois modos, um pelo comando ‘sshfs‘ e outro através do arquivo /etc/fstab.

O uso do sshfs ou /etc/fstab está relacionado além da preferência pessoal, a quantidade de vezes que voce precisa acessar este servidor ou editar arquivos nele ou quanto você confia que sua estação de trabalho será usada apenas por voce mesmo. Suponhamos que raramente você queira acessar arquivos neste servidor, ou a maquina que está usando agora não é muito confiável então eu aconselharia utilizar o comando ‘sshfs’ e até mesmo não usar chaves DSA. Por outro lado, se a máquina for por exemplo, um notebook onde só voce tem acesso, e é rotineiro acessar arquivos remotos então usar /etc/fstab poderá ser bastante benéfico.

Usando o comando sshfs :

sshfs root@ip.do.servidor:/home /media/servidor/ -o allow_other

com o uso do comando ‘man sshfs’ voce perceberá que ‘allow_other’ é para que outros usuários locais e não somente o root poderá acessar a pasta /media/servidor. Existem outras opções, por exemplo, eu uso também ‘umask=000’ para desativar as permissões e atributos de todos os arquivos, faço isso para que todos os arquivos sejam editáveis e nenhum deles seja um executável que possa executado por engano, existem muitas outras opções e cada uma delas é para suprir várias necessidades diferentes.

Usando /etc/fstab :

Dê um ALT+F2 e digite “gksu gedit /etc/fstab” e acrescenta a seguinte linha no final do arquivo :

sshfs#root@ip.do.servidor:/home /media/servidor fuse rw,nosuid,noauto,nodev,allow_other 0 0

As características acima são praticamente as mesmas do uso comum do /etc/fstab, a diferença fica por conta do sistema de arquivos informado como ‘fuse’ e a informação do sistema_arquivos+usuário+servidor mencionado como ‘sshfs#root@ip.do.servidor’. No exemplo acima eu coloquei ‘noauto’ como parametro de montagem e com isso a pasta não será montada automagicamente no momento de boot. Pois é, algumas pessoas são assim, poderiam usar o ‘sshfs’ mas preferem o /etc/fstab mesmo que seja para a mesma finalidade.

Observação Importante #1 : O uso de chaves DSA é seguro, no entanto, você deve ter certeza de guardar seus arquivos ~./ssh/*.pub em local seguro, pois se alguém tiver acesso a estes então poderá também logar-se sem senha. Se estiver inseguro quanto ao uso de chaves, simplesmente não utilize-as e passar a suprir a senha no momento da montagem.

Observação Importante #2 : O pacote ‘openssh-server’ é requerido no servidor, enquanto o pacote ‘sshfs’ é requerido nas estações. Sistemas baseados em debian requerem o carregamento do  modulo fuse (modprobe fuse) na memória, se for este o seu caso, acrescente-o a lista /etc/modules.

Anúncios
%d blogueiros gostam disto: