Mapeamento automático com SSHFS e chave RSA sem senha
O sistema SSH é um conjunto de ferramentas muito potente e seguro, vai muito além de um serviço de acesso à terminal.
O SSHFS é o sistema de arquivo acessível através dos protocolos e ferramentas de ssh. Utilizamos ele para montar um ponto local apontando para um servidor.
Para isso, temos que ter o sshfs instalado no cliente e o ssh devidamente instalado e configurado no servidor. Efetue a instalação conforme sua distribuição.
Nesse documento trabalharei com exemplos utilizando um usuário específico. Poderia ser feito com root também, mas é preferível fazer com usuários comuns tanto no servidor como no cliente. Todos os comandos precedidos de "$" são executados como usuário "usuariosshfs" que existirá tanto no servidor como no cliente.
Vamos ao passo-a-passo
Passo 1: Criar usuário no servidor e adicionar o usuário no grupo "fuse".
Em algumas distribuições, é necessário adicionar ao grupo "fuse" e em outras não.
Criar a pasta que será compartilhada.
NO SERVIDOR:
# adduser usuariosshfs
# gpasswd -a usuariosshfs fuse
# su usuariosshfs
$ mkdir pastacompartilhada
NO CLIENTE
Passo 2: No cliente, criar a chave RSA e adicioná-la ao servidor
$ ssh-keygen -N "" -t rsa -f ~/.ssh/usuariossshfs.id_rsa $ ssh-copy-id -i ~/.ssh/usuariossshfs.id_rsa usuariossshfs@192.168.0.1
*nesse ponto será solicitado a senha do usuariosshfs no servidor
Passo 3: Criar o arquivo ~/.ssh/config, se não existir. Esse arquivo é usado pelo serviço ssh para se conectar ao servidor. Adicionar à ele as linhas:
Host servidorsshfs
hostname 192.168.0.1
port 22
user usuariosshfs
IdentityFile /home/usuariosshfs/.ssh/usuariossshfs.id_rs
Isso fará com que as credenciais de acesso já estejam melhor organizadas.
Importante: a partir desse ponto é que devemos usar o nome que foi dado ao servidor no parâmetro "Host" do arquivo .ssh/config e não seu IP ou FQDN. Nesse caso, foi dado o nome de "servidorsshfs".
Para testar a configuração até aqui, devemos fazer um acesso ssh comum. Caso dê algum erro ou peça senha, reveja todos os passos dados até aqui.
$ ssh usuariosshfs@servidorsshfs
Passo 4: Criar o ponto de montagem no cliente
$ mkdir pastadoservidor
Passo 5: Identificar qual o UID do usuariosshfs.
# id usuariosshfs
* anotar o uid que será mostrado pra usar na montagem.
Passo 6: Montar o compartilhamento:
$ sshfs servidorsshfs:~/pastacompartilhada pastadoservidor -o
allow_other,reconnect,uid=1001,ro
Nesse momento o compartilhamento já deverá estar montado no cliente sem ser solicitado senha. Veja que foi usada a opção "ro" que faz que o compartilhamento esteja em modo "Read Only".
Passo 7: Para desmontar usa-se o comando
$ fusemount -u pastadoservidor
Passo 8: Configurar a montagem automática
Para que o compartilhamento seja montado automaticamente, devemos colocar a linha referente à ele no /etc/fstab.
sshfs#usuariosshfs@servidorsshfs:/home/usuariosshfs/pastacompartilhada /home/usuariosshfs fuse auto,users,allow_other,reconnect,uid=1001,ro 0 0
Ponto de montagem funcional!