sshfs com montagem sob demanda

0

Eu segui as instruções para sshfs montagem "sob demanda" , mas não funciona.

Adicionei isso a /etc/fstab :

username@hostname:/ /mnt/remotes/hostname fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/stanley/.ssh/my_rsa_key,allow_other,reconnect 0 0

Então eu corri sudo mount -a , que não fez nada. Eu também tentei systemctl daemon-reload && systemctl restart proc-sys-fs-binfmt_misc.automount .

Então, segui as dicas de solução de problemas e usei as seguintes opções:

username@hostname:/ /mnt/remotes/hostname fuse.sshfs ssh_command=ssh0-vv,sshfs_debug,debug,_netdev,users,idmap=user,IdentityFile=/home/stanley/.ssh/my_rsa_key,allow_other,reconnect 0 0

Em seguida, executei sudo mount -av . Em um terminal separado eu poderia acessar esse ponto de montagem.

Então 1) ssh e sftp estão funcionando, 2) sshfs está funcionando, 3) permissões são boas.

Portanto, apenas a parte por demanda não está funcionando - o que estou fazendo de errado?

    
por lonix 05.09.2018 / 18:59

2 respostas

1

As instruções dizem:

Note: After editing /etc/fstab, (re)start the required service: systemctl daemon-reload && systemctl restart where <target> can be found by running systemctl list-unit-files --type automount

Você tem um problema: - (.

As opções de montagem implementadas pelo systemd, como x-systemd.* , não são implementadas pelo comando mount .

Mas o comando mount é o que você precisa usar, se você é um usuário sem privilégios (sem root / sudo), e deseja montar uma entrada fstab (que foi marcada para permitir isso usando o user ou users mount option).

    
por 05.09.2018 / 19:56
1

As instruções são confusas, especialmente para alguém que não entende o systemd.

O procedimento correto:

  1. adicione a /etc/fstab : username@hostname:/ /mnt/remotes/hostname fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/stanley/.ssh/my_rsa_key,allow_other,reconnect 0 0

  2. execute sudo systemctl daemon-reload . Isso cria um "arquivo de unidade" do systemd.

  3. descubra qual arquivo de unidade executando systemctl list-unit-files --type automount . Para mim, foi mnt-remotes-hostname.automount .

  4. ativá-lo: sudo systemctl restart mnt-remotes-hostname.automount .

  5. cd /mnt/remotes/hostname ou ls /mnt/remotes/hostname e ele criará automaticamente a conexão sftp!

Isso funciona, mas ainda não tenho certeza sobre:

  • alguns dizem que allow_other é um risco de segurança, preciso analisar isso
  • Eu não sei como especificar quando a montagem deve ser desmontada automaticamente (quantos segundos de tempo ocioso, etc.)

Se alguém puder esclarecer isso, por favor, faça.

UPDATE Como resposta de @ sourcejedis, parar a montagem deve ser feito nesta ordem: systemctl stop whatever.mount && systemctl stop whatever.automount e não se deve usar umount mounpoint !

    
por 05.09.2018 / 21:25