Como usar /etc/fstab e/ou automount com sshfs no OSX?

Como usar /etc/fstab e/ou automount com sshfs no OSX?

Estou tentando montar automaticamente um diretório de uma máquina Ubuntu remota no meu Mavericks Mac. O SSHFS funciona perfeitamente quando montado manualmente, de muitas maneiras diferentes. A montagem sshfs padrão funciona muito bem:

sshfs user@desk:/home/user desk 

e posso até usar mount:

sudo mount -t sshfs -o allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa [email protected]:/home/user desk

(segui oInstruções de montagem automática OSXFusepara configurar mount_sshfs)

Eu quero transformar isso em uma montagem automática. A maneira mais fácil, recomendada pelo OSXFuse, é transformar o mountcomando acima em uma /etc/fstabentrada:

[email protected]:/home/user    /Network/desk   sshfs   allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa 0 0 

mas isso não funciona:

Network $ sudo mount desk
mount: desk: unknown special file or file system.

Da mesma forma, se eu fizer sudo automount -vcisso, recebo um tempo limite longo ou um erro inútil de "Operação não permitida" quando tento inserir o ponto de montagem, dependendo de como eu brinco com a formatação das opções do fstab. Recebo os mesmos erros quando tento configurar um mapa de montagem automática, conforme descritoaqui.

O que há de errado com minha entrada fstab? Ou de que outra forma posso montar automaticamente sshfs no OSX?

(Estou no 10.9.5 com sshfs 2.5.0 do homebrew)

Responder1

Devido a um bug no OSXFuse, isso é necessário para que o sinalizador allow_other funcione:

sudo sysctl -w osxfuse.tunables.allow_other=1

Isso pode ou não resolver o problema do fstab, mas funciona com um mapa direto. Veja como eu configurei o meu.

Adicione esta linha ao /etc/auto_master:

/-                              auto_ssh          -nobrowse,nosuid

crie /etc/auto_ssh:

/Users/USER/MOUNT_POINT          -fstype=sshfs,allow_other,idmap=user,cache=no          USER@LINUXMACHINE:/home/USER

(supondo que você tenha chaves sem senha configuradas).

Informe o autofs sobre suas alterações:

sudo automount -vc

Para fazer com que a alteração osxfuse.tunables.allow_other sobreviva a uma reinicialização:

Coloque o seguinte /Library/LaunchDaemons/sysctl.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Label</key>
 <string>sysctl</string>
 <key>ProgramArguments</key>
 <array>
   <string>/bin/bash</string>
   <string>-c</string>
   <string>/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; /usr/sbin/sysctl -w osxfuse.tunables.allow_other=1</string>
 </array>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>

Carregue o plist com:

launchctl load /Library/LaunchDaemons/sysctl.plist

Responder2

tente adicionar o formato abaixo no fstab:

USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY /LOCAL/MOUNTPOINT fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N ,gid=USER_GID_N 0 0

Se acima não funcionar, verifique b adicionando delay_connect nesse conteúdo e verifique.

Também

veja Macfusão. Também é benéfico ler o FAQ do OSXFUSE para obter a justificativa para tornar o Macfusion um requisito para sistemas de arquivos de espaço de usuário SSHFS.

http://macfusionapp.org/

informação relacionada