Mapear disco de rede no Mac via SSH

 

INTRODUÇÃO

 

Esta atividade é dividida em 4 passos.

1. Instalação do FUSE e do SSHFS
2. Mapeamento da pasta remota
3. Configuração de autenticação sem senha, fazendo uso de chaves pública e privada
4. Criação dos arquivos batch para montagem e desmontagem da pasta remota

Este tutorial não irá abordar a parte do servidor linux. Considera-se que você já possua login e os devidos privilégios sobre a pasta que deseja mapear.

 

FAÇA O DOWNLOAD DO FUSE E DO SSHFS

 

Esses são os programas que possibilitam mapear a pasta remota e trabalhar com ela como se fosse uma pasta local.

Faça o download dos pacotes de instalação usando os seguintes endereços:

https://github.com/osxfuse/osxfuse/releases
Baixe o arquivo osxfuse-N.NN.N.dmg

https://github.com/osxfuse/sshfs/releases
Baixe o arquivo sshfs-N.N.N.pkg

 

INSTALANDO O FUSE

 

De um duplo-clique sobre o arquivo osxfuse-N.NN.N.dmg para tornar o conteudo disponível

 

 

Clique no icone central para prosseguir.

 

 

Siga os passos da instalação: Introduction License, Destination Select, Installation Type, Instalation, Summary.

 

Será necessário aceitar a licença e digitar a senha de administrador.

 

 

INSTALANDO O SSHFS

 

De um duplo-clique sobre o arquivo sshfs-N.N.N.pkg para prosseguir com a instalação.

 

Os passos são semelhantes aos da instalação do Fuse: Introduction License, Destination Select, Installation Type, Instalation, Summary.

 

 

MAPEANDO A PASTA REMOTA

 

Pra isso, a pasta remota será “montada” em uma pasta física a sua escolha. Aqui será feito em “Documents/PastaRemotaOffLine”.

 

Crie a pasta que será o ponto de montagem da pasta remota

mkdir /Users/usuariomac/Documents/PastaRemotaOffLine

 

Faça a montagem da pasta remota com o comando abaixo

sshfs usuarioremoto@nnn.nnn.nnn.nnn:/pastacompartilhada /Users/usuariomac/Documents/PastaRemotaOffLine -o allow_other,auto_cache,IdentityFile=/Users/usuariomac/.ssh/id_rsa,modules=iconv,from_code=UTF-8,to_code=UTF-8-MAC,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,volname=PastaRemotaOnLine

 

Substitua:

usuarioremoto@nnn.nnn.nnn.nnn: Username e endereço do servidor
/pastacompartilhada: Endereço da pasta compartilhada no servidor
usuariomac: Username no Mac

 

O que faz cada uma das opções:

allow_other: Permite que outros usuários possam ver a pasta, caso seu mapeamento seja feito como administrador (sudo), esta opção deverá estar presente para que você mesmo possa visualizar.
IdentityFile=/Users/usuariomac/.ssh/id_rsa: Aponta para o arquivo de chave privada a ser utilizado para autenticação sem senha. Caso não exista, o sistema irá pedir sua senha de acesso ao servidor remoto. (Será configurado logo adiante)
modules=iconv,from_code=UTF-8,to_code=UTF-8-MAC: Esta configuração resolve o problema de acentuação e caracteres extendidos em nome de pastas e arquivos. Sem ela, as pastas contendo, por exemplo cedilha, ficam inacessíveis.
reconnect,ServerAliveInterval=15,ServerAliveCountMax=3: Efetua a reconexão automática no servidor e evita o travamento da aplicação em caso de instabilidade na rede.
volname=Nome da pasta remota após a conexão.

A lista com outras opções de montagem estão em:
https://github.com/osxfuse/osxfuse/wiki/Mount-options

 

DESCONECTANDO A PASTA REMOTA

umount /Users/usuariomac/Documents/PastaRemotaOffLine

 

CONFIGURANDO O ACESSO DIRETO / AUTOLOGIN SSH

 

Para que não seja necessário digitar a senha do servidor remoto toda vez que a conexão for feita, vamos configurar um sistema de autenticação baseado em chaves pública / privada.

 

Verifique se existem chaves já criadas

ls -al ~/.ssh/id_*.pub

 

Caso não exista, vamos cria-las:

ssh-keygen -t rsa -b 4096 -C "meuemail@provedor.com"

Não é necessário digitar uma passphrase.

Ao final da criação será apresentada uma mensagem contendo o local onde as chaves foram salvas:

Your identification has been saved in /Users/usuariomac/.ssh/id_rsa
Your public key has been saved in /Users/usuariomac/.ssh/id_rsa.pub

 

Exporte a chave pública para a sua pasta no servidor

ssh-copy-id usuarioremoto@nnn.nnn.nnn.nnn

 

Teste a conexão:

ssh usuarioremoto@nnn.nnn.nnn.nnn

O sistema deverá abrir a tela do terminal remoto sem exigir autenticação por senha.

 

CRIE ARQUIVO PARA CONEXÃO MANUAL

 

Para quem preferir conexão manual (meu caso), crie um arquivo Bash para efetuar a montagem da pasta remota.

PastaRemotaConectar.command:

cd /Users/usuariomac/Documents/PastaRemotaOffLine

type NUL > PastaRemotaConectar.command ; chmod u+x PastaRemotaConectar.command

echo -e "#! /bin/bash\n" >> PastaRemotaConectar.command

echo -e "sshfs usuarioremoto@nnn.nnn.nnn.nnn:/pastacompartilhada /Users/usuariomac/Documents/PastaRemotaOffLine -o allow_other,auto_cache,IdentityFile=/Users/usuariomac/.ssh/id_rsa,modules=iconv,from_code=UTF-8,to_code=UTF-8-MAC,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,volname=PastaRemotaOnLine\n" >> PastaRemotaConectar.command

echo -e "osascript -e 'tell application \"Terminal\" to quit' &\nexit\n" >> PastaRemotaConectar.command

 

MAPEAMENTO PERMANENTE

 

Este passo é opcional. Particularmente, prefiro fazer a conexão manual através do script apresentado anteriormente. Isto lhe dá mais controle, principalmente se você não desejar que a pasta remota fique conectada o tempo todo. De qualquer maneira, deixo registrado aqui as instruções para quem quiser fazer a montagem do volume remoto durante o boot.

A montagem da pasta remota será desfeita quando o computador for reiniciado. Para registrar o mapeamento durante a inicialização, edite o arquivo fstab. Basicamente, é o mesmo comando de montagem, mas com uma sintaxe um pouco diferente.

 

Abra o arquivo fstab:

sudo nano /etc/fstab

 

Insira na ultima linha:

sshfs#usuarioremoto@nnn.nnn.nnn.nnn:/var/portables/sambashare /Users/usuariomac/Documents/PastaRemotaOffLine fuse defaults,_netdev,allow_other,auto_cache,IdentityFile=/Users/usuariomac/.ssh/id_rsa,modules=iconv,from_code=UTF-8,to_code=UTF-8-MAC,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,volname=PastaRemotaOnLine 0 0

Explicando algumas das opções adicionais:

fuse: Determina o sistema de arquivos.
defaults: Especifica as opções de montagem.
_netdev: Aguarda pela conexão de rede antes de tentar fazer a montagem da pasta remota.

Importante: Como esse mapeamento de inicialização é feito sob privilégios administrativos, os comandos manuais de montagem e desmontagem deverão ser executados como “sudo”.

 

RESULTADO FINAL:

 

A pasta ficará em Documents.

 

Entre na pasta e execute o script PastaRemotaConectar.command. Aguarde alguns segundos…

 

Uma vez conectado, a pasta mudará de nome para PastaRemotaOnLine indicando que você já está na pasta remota

 

Para desconectar, clique com o botão direito e vá em Eject

Espero que este guia lhe seja útil!

 

Deixe seu comentário



Fale conosco

Utilize o formulário ao lado ou se preferir, um os contatos logo abaixo.


  marcelo.gennari@gren.com.br

Gren 2020