我在这里做错了什么,应该是设备和遥控器之间的简单同步?
我在这里查看了其他答案,并在尝试了一些建议的解决方案后更加困惑。这一定很简单。
场景:
我正在尝试做的事情:
我想在多个设备之间的 kdbx 数据库的本地副本之间进行同步。出于本次讨论的目的,我将简单地定义两个本地使用的设备和我在 gitea 服务器上的远程 Git 存储库:
- 我的 Gitea 服务器(我们称之为gitea.host)
在这个名为kdbx的远程 Git 服务器上创建了一个空仓库。
- 我的笔记本电脑/台式设备(我们称之为笔记本电脑)
KeePassXC和配套的浏览器插件已安装在笔记本电脑的 Firefox 中。还安装了 Git。
KeePassXC使用的数据库是joeuser.kdbx
- 我的 Android 设备(我们称此设备为android)
KeePassDX已安装在android上。我也安装了 Termux。
最初设定:
- 在android上我们打开 termux 执行以下操作:
pkg install git
pkg install vim
cd storage/shared
mkdir private/keys
cd private/keys
git config --global user.name "joeuser"
git config --global user.email "joeuser@gmail.com"
git clone https://gitea.host/joeuser/kdbx.git
打开KeepassDX,选择joeuser.kdbx并检查...所有条目都在那里并且它正在工作。
- 在笔记本电脑上,我们执行以下操作:
cd /home/joeuser
mkdir private/keys
cd private/keys
git config --global user.name "joeuser"
git config --global user.email "joeuser@gmail.com"
git clone https://gitea.host/joeuser/kdbx.git
将joeuser.kdbx从任何位置移动到 /home/joeuser/private/keys/kdbx
打开KeepassXC,连接到/home/joeuser/private/keys/kdbx/joeuser.kdbx并检查...所有条目都在那里并且它正在工作。
在“笔记本电脑”上的数据库中添加新条目并与远程同步:
我们首先使用哪种设备并不重要,但对于这个例子,我们将从笔记本电脑开始
注意:我们还安装了将在此处使用的KeePassXC浏览器插件。
- 打开KeePassXC,解锁数据库,joeuser.kdbx
- 打开浏览器(例如 Firefox)并访问诸如https://joeuser.com 之类的站点
- 登录,浏览器插件会询问您是否希望将 uid/pwd 组合添加到新条目中,然后接受。
- 返回KeePassXC并验证 kdbx 数据库中现在有一个条目。一切看起来都很好。
- 将数据库推送到远程源:
git add .
git merge -m "added entry in kdbx"
git push
将“android”与遥控器同步:
1 打开termux并执行以下操作:
cd storage/shared/private/keys/kdbx
git pull
- 打开KeePassDX,并连接到数据库 private/keys/kdbx/joeuser.kdbx
- 检查 joeuser.com 的登录条目,它就在那里。
- 返回KeePassDX,在数据库中添加另一个 uid/pwd 条目。
- 在termux会话中,执行:
git add .
git merge -m "added another entry in db"
git push
在这一点上,一切都戛然而止。来自任一本地设备的推、拉会导致来自 Git 的消息指出:
Already up to date
拉和Everything up to date
推。
问题!怎么解决?
我想按照pass在 UNIX/Linux 工作站上的工作方式以及密码存储和OpenKeyChain的对应组合在 Android 上工作的方式对此进行建模。基本上,pass 使用 git 在我的远程 Gitea 服务器的私有仓库之间进行同步,而在使用笔记本电脑或安卓时,我所要做的就是下拉设置菜单并选择同步 - 瞧!该设备现在与远程仓库同步,并且每次都能完美运行。
我在这里做错了什么?我该如何解决这个问题并获得我正在寻求利用的功能?
在将 git 与本地和远程存储库一起使用之前,我从来没有真正遇到过问题,但话又说回来,除了pass/Password Store/OpenKeyChain我一直与一个包括其他人的团队合作,并且从来没有真正关心过做从远程获取我自己的更新(因为根据定义,我已经拥有它们),除非我要转移到新设备。正如预期的那样,我得到了其他所有人的贡献。