Eu tenho um keepassxc
banco de dados com senhas no meu laptop com Lubuntu. Eu tenho um backup na unidade flash via rsync.
Gostaria de usar o mesmo banco de dados no meu telefone Android e na máquina Windows no trabalho também.
Qual é a maneira mais eficiente e segura de sincronizar um banco de dados (real) e utilizá-lo em todos esses dispositivos?
Agora, tenho uma ideia de uma solução complicada. Para trazer o flash com banco de dados sincronizado todos os dias para o meu trabalho e ter outra cópia no celular Android. Qual é a melhor solução?
Existe outra opção. Syncthing que roda em Linux, Windows, Android ou MacOS. Você pode manter uma versão atualizada de qualquer coisa em qualquer uma ou em todas as suas plataformas automaticamente. Claro que há sobrecarga. Parece funcionar bem para keepassxc e você tem muitas opções.
A grande vantagem desta opção, além de automática, é que uma solução funciona em qualquer lugar. Ele pode ser configurado para funcionar apenas na sua rede local e você pode até configurá-lo para fazer backup de todas as fotos do seu telefone.
O Syncthing possui uma interface GUI que facilita a configuração em sua maior parte e, depois de configurar os diretórios que deseja vincular entre os nós, tudo o que você precisa fazer é colocar os arquivos nesses diretórios. Keepassxc funcionará diretamente de um desses diretórios para que as atualizações sejam transparentes. Se a sincronização falhar no Keepassxc, o Syncthing armazenará a cópia com falha no diretório com um nome exclusivo e você poderá usar o Keepassxc para mesclá-la posteriormente.
Bem, a solução mais simples e segura é ter um servidor/serviço usando ssh
sftp
com o qual você irá sincronizar usandorsync
as chaves ssh ou similares. Este local será o master do DB.Eu geraria pares de chaves ssh para cada cliente. Faça com que eles sejam carregados automaticamente quando você contiver uma senha, o que é mais seguro. Você deve ter uma chave diferente para cada dispositivo.
Antes de abrir/carregar o KeePassXC basta sincronizá-lo com o seu cliente. Em determinados períodos, quando seu banco de dados está fechado, por exemplo, você bloqueia sua tela, você sincroniza do cliente para o servidor mestre. No final da sessão você cria a sincronização final onde coloca o banco de dados KeePassXC mais recente, então o dispositivo continua desligando.
Você deve sempre manter um backup caso a sincronização falhe. Eu teria o backup em cada um dos dispositivos.
Edite para obter detalhes:
No linux
secret-tool
No Windows
msys2
ouWSL2
e usaria openssh e rsync como no linuxNo Android
Com o WebDAV você pode ler/gravar em um arquivo em um servidor da Internet (ou seja, https://example.com/remote.php/dav/files/john.doe/mydatabase.kdbx ). Desta forma, o arquivo de banco de dados KDBX online no servidor online é atualizado, e não um arquivo local.
O aplicativo Android "Keepass2Android" e o aplicativo keepass (.info) suportam WebDAV, KeepassXC não.
Para KeepassXC você precisa de um cliente de download/upload que mantenha o arquivo local e o arquivo do servidor online sincronizados.
Se você deseja auto-hospedar seus arquivos e ter um servidor online, você pode querer instalar o nextcloud. Nextcloud mantém cada versão do banco de dados após uma alteração (backup). Caso contrário, você pode usar o Google Drive, OneDrive, Dropbox ou similar. Acho que eles suportam WebDAV e certamente têm um cliente de sincronização para todos os sistemas operacionais disponíveis - se você não se importa em colocar seu banco de dados de senha lá.
Não sou especialista em segurança, mas acho que salvar dados criptografados do banco de dados em uma conexão TLS criptografada (https) é bastante seguro. Para o trabalho, prefiro usar o Keepass com WebDAV do que o KeepassXC com uma cópia kdbx local.