我希望能够通过 USB 或某些外部身份验证方法登录。即打开桌面,出现登录屏幕提示,我插入 USB 并登录。拔下 USB 后,屏幕会锁定。只需将其插入即可再次解锁屏幕。是否有任何应用程序可用于此?或者可能是智能卡?
答案1
最佳方法
寻找聚丙烯酰胺适合您需求的模块。这是完成您要做的事情的最佳方式!
如果在存储库中找不到某些东西,您可以尝试编写脚本。通过结合 udev、加密xdotool
、USB 驱动器开头的未使用空间,并测试您是否处于锁屏状态,您就可以实现它。
一般操作方法:
- 为您的帐户创建安全密码
- 使用您将存储的密钥文件加密(我使用 gpg 和对称加密)此密码某个安全的地方在你的电脑
- 使用十六进制编辑器在 USB 上找到第一个分区之前的未使用空间,该分区至少与加密密码一样大。
- 将加密的密码写入 USB 驱动器上未使用的空间前第一个分区(
dd
在这里很有用)。如果您写入用于文件系统管理的空间,请务必小心,否则可能会“破坏”您的数据! - 如果你对自己在不丢失数据的情况下完成最后两个步骤的能力没有信心,你可以像保存其他文件一样将加密文件保存到 USB 中
- 安装命令行程序,
xdotool
- 编写一个 udev 规则,在插入特定设备时调用脚本
- 编写一个脚本(该脚本将被你刚刚编写的规则中的 udev 调用)
- 检查锁屏状态
- 如果被锁定,则从 USB 中拉出加密密码(用于
dd
此) - 使用计算机上的密钥解密密码
- 使用
xdotool
将密码发送到密码输入字段,然后按回车键即可登录/解锁系统。
- 编写一条 udev 规则来监视 USB 设备是否被移除。移除后,发送命令以锁定屏幕
通过在将密码复制到 USB 之前对其进行加密,您可以确保即使您丢失了 USB,您的密码也不会以纯文本形式显示。如果有人从您的系统中获取了您的密码解密密钥,那么如果没有存储在 USB 上的加密密码,您的密码将毫无用处。
查看我在另一个问题中写的答案我将在其中提供更详细的说明。该帖子可能需要一些更新,如果我近期有时间,我会这样做。
可以很容易地进行调整,以根据服务器上集中管理的主列表检查插入的 USB。当然,密码存储的管理方式可能略有不同。