Início
» Como fazer
»
How to Mount a Remote SSHFS Directory Automatically at Boot in Debian
How to Mount a Remote SSHFS Directory Automatically at Boot in Debian
To mount a remote SSHFS directory automatically in Debian, configure noninteractive SSH authentication and add an SSHFS entry to /etc/fstab. With systemd, you can either connect during boot or activate an automount at boot and connect when the directory is first accessed. The second approach is useful when the remote server or network may be unavailable during startup.
This reference uses Debian 13 “trixie” documentation reviewed on October 9, 2026, including SSHFS 3.7.3 and systemd 257 documentation. The commands are configuration examples, not results from a tested deployment. Check your installed manuals if you use another release.
Choose when the SSHFS connection should start
Requirement
Configuration choice
Expected behavior
Make the directory available on demand after boot
Use x-systemd.automount
The first access triggers the remote mount.
Attempt the remote connection during boot
Omit x-systemd.automount
systemd starts the mount as part of startup.
Allow startup to continue if storage is unavailable
Use nofail
The mount is not a required boot dependency.
An application must wait for this storage
Add a dependency to that application’s service
The application starts only after the mount succeeds.
The main example uses an on-demand mount. The distinction matters: an active automount does not mean an SSHFS connection already exists. See Debian’s systemd automount manual for the relationship between the automount and its matching mount unit.
Before you start
The Debian client uses systemd and you have sudo access.
The remote account supports SFTP and can access the intended directory.
The client can reach the remote host, including any required VPN or jump host.
You have a way to verify the remote server’s SSH host-key fingerprint.
The local mount point is empty and is not a critical system directory.
Replace files@storage.example.net:/srv/data with your remote username, hostname, and directory. The hostname is a placeholder. The local mount point is /mnt/remote; the dedicated key is /root/.ssh/sshfs_boot.
This is an administrator-managed system mount. It runs locally as root but logs into the remote server as files, not remote root. The SSHFS project documentation generally recommends running ordinary interactive mounts as a regular user. A system boot mount requires deliberate credential and access management.
Install SSHFS on the Debian client. The remote system needs working SFTP service; it does not need an SSHFS installation just to serve files. If package installation fails, resolve the repository or connectivity issue before editing boot configuration.
Install the SSHFS client and OpenSSH tools on Debian.
Não sobrescreva uma chave existente nesse caminho. Escolha outro nome, se necessário, e use-o consistentemente a seguir. A senha vazia é intencional para este exemplo de desbloqueio não supervisionado: não há ninguém disponível para desbloquear a chave durante a inicialização. Proteja o cliente e conceda à conta remota apenas as permissões de diretório necessárias. Se sua política exigir chaves criptografadas, implemente um mecanismo gerenciado de desbloqueio não supervisionado.
As opções de geração de chaves estão documentadas no manual do ssh-keygen do Debian . Uma chave desbloqueada no seu agente SSH de desktop não fica automaticamente disponível para o ponto de montagem do sistema.
Prepare os diretórios locais antes de criar a chave de inicialização dedicada.
3. Autorize a chave e verifique o SFTP não supervisionado.
Durante a configuração da conexão, compare a impressão digital da chave do host exibida com um valor obtido do administrador do servidor por meio de um canal confiável antes de aceitá-la. O comando é executado como root local, portanto, o registro usual da chave do host é armazenado nos arquivos SSH do root. Se a configuração baseada em senha estiver desabilitada no servidor, solicite ao administrador que instale a chave pública.
Em seguida, teste o SFTP com a mesma identidade e arquivo de chave de host que serão usados na montagem de inicialização:
No prompt do SFTP, use `ssh` ls /srv/data, depois `ssh` bye. Isso deve funcionar sem senha ou solicitação de confirmação. `ssh` BatchMode=yesimpede a autenticação interativa; a configuração explícita da chave do host preserva a verificação. Essas opções são definidas no manual de configuração do cliente OpenSSH .
Para uma porta não padrão, use -p 2222`ssh-copy-id`, -P 2222`sftp` e port=2222`sshfs`. Se for necessário um servidor de salto (ou servidor intermediário), configure e teste essa rota também no contexto SSH do usuário root.
Autorize a chave pública dedicada para a conta remota de exemplo; verifique a impressão digital do host durante a configuração.
Verifique se a listagem pertence ao diretório remoto pretendido. Este exemplo inicialmente permite acesso apenas ao proprietário local da montagem, root, portanto, use sudo para a verificação. Finalize desmontando o diretório antes de iniciar a configuração gerenciada pelo systemd. Feche os shells e aplicativos que utilizam o diretório se ele estiver em uso.
O SSHFS utiliza as permissões da conta remota. Ser root no cliente não concede permissões adicionais no servidor. Corrija erros de autenticação, SFTP ou caminho remoto aqui antes de tornar a configuração permanente.
O terminal mostra um exemplo de montagem manual; utilize o comando completo e as opções de verificação presentes no texto.
5. Adicione a entrada persistente no fstab.
sudo cp -a /etc/fstab /etc/fstab.sshfs-backup
sudoedit /etc/fstab
Escolha um nome de arquivo de backup diferente, caso o backup já exista. Anexe o seguinte como uma única linha , substituindo o servidor e o caminho de exemplo:
O manual do SSHFS do Debian especifica sshfs`fstab-type` como o tipo de sistema de arquivos e aceita `fstab fuse.sshfs-type` para compatibilidade. Os campos finais desativam o agendamento de dump e verificação do sistema de arquivos para esta entrada. Consulte a referência de formato do fstab se os caminhos contiverem espaços em branco.
Opção
Finalidade
_netdev
Classifica a montagem como dependente de rede.
nofail
Vamos continuar a inicialização sem exigir essa montagem.
x-systemd.automount
Cria uma montagem automática acionada por acesso.
x-systemd.mount-timeout=30s
Define os limites de espera do comando de montagem inicial.
ConnectTimeout=10
Estabelecimento de conexão SSH de limites.
reconnecte configurações de servidor ativo
Ajuda a detectar uma conexão interrompida e a restabelecer a conexão.
As opções específicas do systemd estão documentadas no manual de montagem do systemd no Debian . O tempo limite de montagem não impõe um prazo para todas as operações de arquivo subsequentes.
Faça backup do arquivo fstab antes de adicionar a entrada persistente do SSHFS.
6. Recarregue o systemd e ative a montagem automática.
sudo findmnt --verify --verbose
sudo systemctl daemon-reload
sudo systemctl start mnt-remote.automount
systemctl status mnt-remote.automount
sudo ls /mnt/remote
findmnt -t fuse.sshfs
Revise as mensagens de verificação antes de prosseguir. O manual do findmnt descreve a verificação do fstab; esta verificação verifica a configuração, não se as credenciais remotas funcionam. O acesso ao diretório realiza o teste de conexão separadamente.
Os nomes das unidades acima correspondem a /mnt/remote. Para outro caminho, derive o nome da montagem com systemd-escape --path --suffix=mount /your/path. Unidades geradas a partir do fstab não precisam de um systemctl enablecomando separado.
Se você deseja que uma tentativa de conexão ocorra durante a inicialização, remova-a x-systemd.automountda entrada. Após liberar os usuários do diretório, pare suas unidades de montagem automática e de montagem, recarregue o systemd e inicie a unidade de montagem correspondente. Mantenha-a nofailse o armazenamento deve permanecer opcional.
Recarregue o systemd e inicie a unidade automount gerada.
7. Verifique o comportamento após a reinicialização.
Reinicie em um horário de manutenção adequado. Com a configuração sob demanda, verifique primeiro a montagem automática e, em seguida, acesse o diretório:
systemctl status mnt-remote.automount
sudo ls /mnt/remote
systemctl status mnt-remote.mount
findmnt -t fuse.sshfs
Os sinais esperados são uma montagem automática ativa após a inicialização e uma montagem SSHFS real após o acesso. Uma autofsentrada por si só não prova que os arquivos remotos estão conectados. Verifique um arquivo ou diretório remoto conhecido, e não apenas se a pasta do ponto de montagem local existe.
Se uma aplicação precisar desse armazenamento antes de iniciar, adicione um módulo ao seu serviço contendo:
[Unit]
RequiresMountsFor=/mnt/remote
Essa dependência, documentada em systemd.unit , importa e ordena as montagens necessárias. Recarregue o systemd e teste a inicialização do aplicativo separadamente. O aplicativo também precisa das permissões de acesso local apropriadas.
Acesse o diretório e, em seguida, inspecione a montagem SSHFS real e seu status de unidade.
Repita o teste SFTP no contexto raiz; verifique a chave selecionada e a autorização remota.
A verificação da chave do host falhou
Verifique a impressão digital do servidor e a entrada do diretório `known_hosts` do usuário root. Investigue qualquer alteração em uma chave antes de atualizá-la.
falha na resolução de nomes ou na conexão
Verifique o DNS, o roteamento, o acesso às portas, a inicialização da VPN e a disponibilidade do servidor de acesso (jump-host).
O sudo consegue ler arquivos, mas um usuário local não.
Analise a política de acesso e o mapeamento de propriedade do FUSE.
Mount está ocupado
Encerre os processos cujo diretório de trabalho ou arquivos abertos estejam localizados no ponto de montagem.
network-online.targetÉ um ponto de sincronização de inicialização, não uma garantia de que um servidor ou VPN específico esteja acessível. A explicação do systemd network-online descreve essa limitação.
Para acesso intencional por um usuário local, considere adicionar `<username>` allow_other,default_permissions,uid=1000,gid=1000, substituindo os IDs locais reais. Isso expõe o acesso além do proprietário da montagem, enquanto as verificações de permissão do kernel ainda se aplicam. As opções UID/GID alteram a propriedade apresentada, não a propriedade do lado do servidor. Montagens de raiz não exigem `<username>` user_allow_otherno fuse.conf; essa política permite que montagens não-raiz solicitem acesso mais amplo. Consulte o manual de permissões do FUSE . Teste novamente como o usuário pretendido do aplicativo após alterar essas opções.
Após corrigir o problema subjacente, limpe o estado de montagem com falha e tente acessar novamente:
sudo systemctl reset-failed mnt-remote.mount
sudo ls /mnt/remote
A reconexão não é uma solução transparente para todas as aplicações: arquivos previamente abertos podem falhar e precisar ser reabertos. Gravações interrompidas podem resultar em perda de dados. Escolha outro design de armazenamento se sua carga de trabalho exigir garantias de falha mais robustas.
Leia primeiro o registro de montagem; limpe um estado de falha após corrigir a causa.
Lista de verificação operacional e reversão
O SFTP não assistido funciona usando a identidade de inicialização exata.
A chave do host foi verificada e armazenada no arquivo esperado.
A entrada no fstab foi analisada e não contém senhas ou chaves privadas.
O acesso após a reinicialização produz a listagem remota desejada.
O usuário ou serviço local real pode ler os arquivos necessários.
Você entende como o aplicativo lida com armazenamento indisponível.
Para desativar a configuração, interrompa os aplicativos que utilizam o diretório, execute `stop` mnt-remote.automounte `stop` mnt-remote.mount, remova apenas esta entrada do fstab e execute `fstab` sudo systemctl daemon-reload. Preserve as demais entradas do fstab. A remoção da configuração de montagem não exclui arquivos remotos nem revoga a chave de autorização remota.