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

2

Estou tentando montar automaticamente um diretório de uma máquina remota do Ubuntu no meu Mac Mavericks. O SSHFS funciona perfeitamente quando montado manualmente, de muitas maneiras diferentes. A montagem padrão do sshfs 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

(Eu segui as instruções de montagem automática do OSXFuse para configurar mount_sshfs )

Eu quero transformar isso em um automount. A maneira mais fácil, recomendada pelo OSXFuse, é transformar o comando mount acima em uma entrada /etc/fstab :

[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 -vc , recebo um tempo limite longo ou um erro "Operação não permitida" quando tento entrar no ponto de montagem, dependendo de como eu jogo com a formatação das opções do fstab. Eu recebo os mesmos erros quando tento configurar um mapa automático, como descrito aqui .

O que há de errado com a minha entrada no fstab? Ou, como mais eu posso montar automaticamente o sshfs no OSX?

(Eu estou no 10.9.5 com o sshfs 2.5.0 do homebrew)

    
por Adam 23.10.2014 / 20:27

2 respostas

2

Devido a um erro no OSXFuse, isso é necessário para o sinalizador allow_other funcionar:

sudo sysctl -w osxfuse.tunables.allow_other=1

Isso pode ou não corrigir o problema 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.)

Diga ao 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 em /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
    
por 28.10.2014 / 19:57
0

tente adicionar o formato abaixo em fstab:

USERNAME @ HOSTNAME_OR_IP: / REMOTE / DIRETÓRIO / LOCAL / MOUNTPOINT fuse.sshfs x-systemd.automount, _netdev, usuário, idmap = usuário, 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 estiver funcionando, verifique b adicionando delay_connect nesse conteúdo e verifique.

veja Macfusion. Também é benéfico ler as perguntas frequentes do OSXFUSE para justificar que o Macfusion seja um requisito para os sistemas de arquivos de espaço do usuário do SSHFS.

link

    
por 23.10.2014 / 20:46