sshfs não está montando automaticamente na inicialização, apesar da configuração do / etc / fstab

21

Configurando algumas estações de trabalho Ubuntu (13.04), estou tentando ter um sistema de arquivos remoto montado (sobre ssh).

A configuração atual

  • Eu criei o usuário someuser e o adicionei ao grupo fuse

  • A minha entrada fstab é como:

    sshfs#[email protected]:/remote_dir  /media/remote_dir/   fuse    auto,_netdev,port=22,user,allow_other,noatime,follow_symlinks,IdentityFile=/home/someuser/.ssh/id_rsa,reconnect     0       0
    

do meu entendimento:

  • auto : está solicitando explicitamente que o fs remoto seja montado na inicialização
  • _netdev : aguarde até que a interface esteja ativa antes de tentar montar
  • usuário : permite que qualquer usuário peça que esse local remoto específico seja montado (inútil na perspectiva do usuário root montando-o automaticamente na inicialização)
  • allow_other : permitirá que qualquer usuário (no grupo de fusíveis?) acesse os fs montados
  • IdentityFile : aponta para a chave privada emparelhada com a chave pública adicionada na /home/someuser/.ssh/authorized_key da máquina remota.
  • reconectar : não tenho certeza ... Tentará se reconectar se a conexão for perdida?

O problema

  • Na inicialização, eu registro com algum usuário , inicio um terminal, e / media / remote_dir está vazio.

  • Mas do mesmo usuário (ou da raiz), posso montá-lo apenas digitando:

    mount sshfs#[email protected]:/remote_dir
    

    Também é montada de forma automática, se eu clicar em remote_dir em um navegador de arquivos.

Alguma pista sobre o que pode estar faltando?

    
por Ad N 31.07.2013 / 15:16

4 respostas

13

Eu experimentei exatamente o mesmo problema após a atualização do Oneiric (onde o automount funcionava bem) para o Precise.

O que resolveu o problema para mim foi adicionar a opção delay_connect . Além disso, tenho usado a opção "workaround = rename" antes, desde os tempos Oneiric. Não tenho certeza se ainda é necessário hoje, mas pelo menos não parece doer.

Minha linha completa do / etc / fstab é:

sshfs#user@host:/remote/dir /local/dir fuse delay_connect,idmap=user,uid=1000,gid=1000,umask=0,allow_other,_netdev,workaround=rename 0 0

Você obviamente precisaria adaptar os IDs de usuários / grupos ao seu próprio ambiente.

    
por lbo 18.08.2013 / 17:56
0

teve o mesmo problema, acho que você precisa de auto para ser noauto. ele não deve ser montado na inicialização, ele deve ser montado quando a eth for ativada

    
por Piet Bijl 06.12.2013 / 09:21
0

Se você for montá-lo a partir de um servidor DNS autoritativo, /etc/fstab e o nome do host do servidor SFTP remoto for fornecido por esse servidor DNS, você certamente não conseguirá se conectar porque o nome do host não pode ser resolvido ainda. O servidor DNS deve estar em execução durante a tentativa de montagem ou você precisa encontrar um método alternativo para obter o endereço IP do servidor remoto.

Se este for o caso, você pode escolher qualquer uma das seguintes soluções:

  • Adicione a opção delay_connect para permitir que a sequência de inicialização continue e depois que a sequência de inicialização tiver iniciado o servidor DNS ao qual ela se conectará.
  • Adicione o nome do host do seu servidor SFTP remoto ao seu arquivo /etc/hosts local com o endereço IP apropriado.
  • Use o endereço IP do servidor SFTP remoto no fstab em vez do nome do host.
por Tony 08.11.2015 / 01:26
0

Também para complementar todos os comentários anteriores,

  1. Não permita que usuários não raiz especifiquem a opção allow_other mount em /etc/fuse.conf

  2. Certifique-se de usar cada montagem sshfs pelo menos uma vez manualmente enquanto estiver na raiz, para que a assinatura do host seja adicionada ao arquivo ~/.ssh/known_hosts .

    sshfs [user]@[host]:[remote_path] [local_path] -o allow_other,IdentityFile=[path_to_id_rsa]
    
por Martin Brousseau 15.04.2017 / 03:24