INTRODUÇÃO
Como apresentado em outro artigo neste blog, o SSHFS é uma ferramenta que usa o OpenSSH para habilitar a montagem de sistemas de arquivos remotos na máquina local, de forma transparente para o usuário.Se tudo estiver configurado corretamente, SSHFS autentica conexões através do OpenSSH utilizando certificados digitais, garantindo que somente aqueles que devem ter acesso aos diretórios remotos possam montá-los e acessá-los.
DEPENDENCIAS
FUSE 2.2 ou posterior;Glib2.0 ou posterior;
INSTALANDO O SSHFS EM DEBIAN-LIKE
sudo aptitude install sshfs autofs; ousudo apt-get install sshfs autofs;
INSTALANDO O SSHFS EM REDHAT-LIKE
sudo yum install sshfs autofs;Escopo
No artigo Brito: Montando Compartilhamento Sob SSH (Secure Shell) em Shell, é apresentado apenas como montar um compartilhamento sobre o ssh.Neste artigo, o foco é como configurar para que o compartilhamento sobre ssh, seja montado automaticamente pelo sistema, de modo a não ser necessário a intervenção manual, para tal será apresentado como gerar certificado de acesso, envio do certificado para máquina remota,preparação do ambiente para automontagem,configuração do autofs.
certificado de acesso
Gerar certificado RSA de 3Mb (Mega bits)
ssh-keygen -b 3072
Gerar certificado DSA 3Mb
ssh-keygen -b 3072 -t dsaEnvio do certificado para máquina remota
ssh-copy-id -i ~/.ssh/id_rsa.pub root@RemoteHostou
ssh-copy-id -i ~/.ssh/id_dsa.pub root@RemoteHost
Automontagem
Para realizar a automontagem faz-se necessário os locais pré-definidos, ou seja os diretórios que receberam as montagem remotas.mkdir /media/sshfs
Configuração autofs
Os arquivos principais de configuração do autofs são/etc/auto.master
e o arquivo de mapeamento, que usaremos o /etc/auto.sshfs
.E para iniciar a configuração faz-se necessário descobrir o userid, do usuário que tomará o processo.
Exemplo: Se por ventura o usuário brito será responsável pelo processo do autofs, deve-se utilizar userid deste usuário.
Como descobrir o userid
- com o comando id:
id brito
uid=1000(brito) gid=1000(brito) grupos=1000(brito),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)
No campo uid=1000
- com funcionalidades do bash:
grep brito /etc/passwd
brito:x:1000:1000:Ricardo Brito,,,:/home/brito:/bin/bash
No terceiro campo :1000
configurar /etc/auto.master
No arquivo /etc/auto.master
, é definido o mapa base de automantagem para autofs, e qual usuário será responsável pelo processo, usando o uid identificado anteriormente.Este trecho abaixo deve ser acrescentado no arquivo.
/media/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost
Para cada arquivo de mapeamento deve ser acrescentado uma linha com suas configurações.
configurar /etc/auto.sshfs
O arquivo de mapeamento não exite, deve ser criado no ato de sua configuração.Neste arquivo são definidos as permissões de cada compartilhamento.
mountpoint -fstype=fuse,rw,nodev,nonempty,allow_other,reconnect,uid=1000,
gid=1000,max_read=65536,compression=yes,auto_cache,no_check_root,
kernel_cache :sshfs\#user@RemoteHost\:/remotedir
o
mountpoint
é o nome do diretório dinâmico que conterá o dados remotos, passando a existir a estrura /media/sshfg/mountpoint
.Exemplo:
mountpoint -fstype=fuse,rw,nodev,nonempty,allow_other,
reconnect,uid=0,gid=0,max_read=65536,compression=yes,
auto_cache,no_check_root,kernel_cache
:sshfs\#root@10.100.0.25\:/var/log/apache2
mountpoint: identificação local do compartilhamento remoto; -fstype: permissões para o compartilhamento remoto no sistema de arquivos local; :sshfs: tipo sistema de arquivos a ser mountado; #root@10.100.0.25: usuário@RemoteHost :/var/log/apache2: remotedir
Exemplo resumido:
lambda_apache2_log -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#root@10.100.0.25\:/var/log/apache2
Arquivo auto.sshfs completo:
Referencias
Brito: Montando Compartilhamento Sob SSH (Secure Shell) em ShellConexão com chaves assimétricas sem uso de senha em servidor sshd
Comentários
lambda_apache2_log -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#root@10.100.0.25\:/var/log/apache2