Automount sshfs usando fstab sem mount -a


24

Considere a seguinte linha fstab (quebras de linha para facilitar a leitura):

sshfs#user@192.168.1.123:/home/user/ 
/home/user/Server/ 
fuse    
auto,user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/user/.ssh/id_rsa,idmap=user,allow_other  
0 

Funciona bem, mas toda reinicialização que preciso usar mount -apara montar o servidor (ou clique no ícone apropriado em Thunar para montar a coisa)

É possível montar meu diretório ssh imediatamente no momento da inicialização?

Estou usando o Xubuntu 13.10

Respostas:


18

A sintaxe correta para montar compartilhamentos sshfs na inicialização, no arquivo / etc / fstab, é

 USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs _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

É uma adaptação às distribuições não relacionadas ao sistema das instruções contidas aqui . Se você estiver em uma distro do systemd (Arch, Fedora, OpenSUSE, ...), a instrução adequada é:

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

Parece quase exatamente a mesma linha fstab que a minha (exceto as permissões e a opção de link simbólico) De qualquer forma, tentei e não obtive sucesso. Eu ainda tenho que executar mount -aapós a inicialização
user21886 4/13

Engraçado, funcionou para outro usuário superuser.com/questions/666739/… . Você verificou se é o usuário 1000.1000 e se sua chave é id_rsa?
MariusMatutiae

Sim, e está funcionando 100%, mas preciso executar mount -aapós a inicialização. Estou pensando em adicionar mount -aao início automático #
#

É possível que isso ocorra antes de sua rede surgir após a execução da montagem na inicialização. Tente adicionar estas duas linhas no sono rc.local 10: mount -a
MariusMatutiae

Ainda sem sucesso. Talvez o problema seja a minha configuração - minha rede ethernet está ativa de 5 a 15 segundos depois que o xfce (e o ambiente de desktop) está ativo. Não sei por que o ubuntu funciona assim. O meu arco se conecta antes do xfce etc.
user21886

4

Tente usar a opção delay_connect .

Linha completa / etc / fstab:

USER@HOSTNAME:/REMOTE/ /LOCAL/ fuse.sshfs delay_connect,_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

2

Esses delay_connect, _netdev... estão corretos, mas não funcionarão, a menos que você ajuste a rede para aparecer exatamente (ou antes) naquela pequena janela de tempo, quando o / etc / fstab estiver sendo processado. Quando o processamento terminar, e a rede surgir mais tarde, você deverá usar o mount -a(ou amigos).

Na maioria dos casos (e também no meu), o network-managerproblema foi causado, pois ele traz a rede após o login por padrão. Pode ser ajustado para trazê-lo mais cedo no momento da inicialização. Se bem me lembro, tudo o que você precisa fazer é marcar a opção Available to all usersna caixa de diálogo de propriedades da conexão (ou, se preferir a linha de comando, criar manualmente a conexão /etc/NetworkManager/system-connections).


0

Baseado nesta página de ajuda do ubuntu e nas minhas tentativas com o Debian 9, eu o faço funcionar e tenho as permissões de arquivo corretas com esta fstabentrada:

sshfs#user@host:/remote/path /local/path fuse delay_connect,defaults,idmap=user,IdentityFile=/local/path/to/privatekey.pem,port=22,uid=1001,gid=1002,allow_other 0 0

delay_connectgarante fstabque não monte a pasta remota antes que as interfaces de rede sejam ativadas.

Você pode mudar port, uid, gidpara atender às suas necessidades locais. Para descobrir o meu uid/ gideu simplesmente usei $ idquando logado com o usuário certo.

allow_otherexiste para permitir que outros usuários / grupos acessem o diretório montado; Mesmo com as /local/pathpermissões corretas (por exemplo 777), isso é necessário se você desejar que um usuário diferente (diferente daquele que monta o sshfs) acesse o diretório montado.

Outras opções podem ser encontradas na página de manual do sshfs

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.