Skip to content

Commit

Permalink
pgp stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
Young-Lord committed Dec 14, 2023
1 parent 89662d5 commit 4cb5c48
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 19 deletions.
55 changes: 44 additions & 11 deletions _posts/2023-11-30-Ventoy_Arch_Linux_To_Go_十分钟速通.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ last_modified_at: 2023-12-2

## 前言

最近不是[Canokey](https://item.taobao.com/item.htm?id=664914723920)有货了嘛,想买一个来玩玩gpg。gpg公钥显然需要离线生成,刚好几个月前参加科苗的时候认识了一个用Ventoy跑Fedora的人,于是就想到了用Ventoy做一个Arch Linux To Go。
最近不是[CanoKey](https://item.taobao.com/item.htm?id=664914723920)有货了嘛,想买一个来玩玩gpg。gpg公钥显然需要离线生成,刚好几个月前参加科苗的时候认识了一个用Ventoy跑Fedora的人,于是就想到了用Ventoy做一个Arch Linux To Go。

中途出了一大堆问题,于是水了这篇博文以防后人踩坑。

Expand All @@ -24,7 +24,7 @@ last_modified_at: 2023-12-2
启动VirtualBox,新建个虚拟机,配置时有两点需要注意的:

- 勾选“启用 EFI”
- 创建虚拟硬盘时选择“预先分配全部空间”,如果只是给Canokey用的话8GB就够了(这个以后可以扩容,)
- 创建虚拟硬盘时选择“预先分配全部空间”,如果只是给CanoKey用的话8GB就够了(这个以后可以扩容,)

开机,启动`archinstall`,我的配置如下(默认值省略):

Expand Down Expand Up @@ -55,7 +55,7 @@ last_modified_at: 2023-12-2

此时可以从AUR装个`clash-for-windows-bin`来替代之前自己丢进去的版本(注意安装过程必须使用代理)。

安装一系列基础包:`yay -S --needed curl wget nano vim p7zip which lvm2 git noto-fonts-cjk`
安装一系列基础包:`yay -S --needed curl wget nano vim p7zip which lvm2 git noto-fonts-cjk ntfs3g`

关于网络连接,使用`network-manager-applet`即可,参考[官方教程](https://wiki.archlinux.org/title/NetworkManager#nm-applet)可以在任务栏管理网络连接;如果不装,也可以使用`nmcli``nmtui`管理网络连接。

Expand Down Expand Up @@ -131,35 +131,68 @@ sudo bash ./vtoyboot.sh

那几个`Possibly missing firmware for module:`一般没有影响,绝大部分固件是用不到的,不过如果你想隐藏警告的话可以自行从AUR安装`mkinitcpio-firmware`

### Canokey相关
### CanoKey相关

```shell
yay -S --needed openssl gnupg ungoogled-chromium-bin python-pipx yubico-piv-tool swig opensc kleopatra canokey-usbip-git
yay -S --needed openssl gnupg ungoogled-chromium-bin python-pipx yubico-piv-tool swig opensc kleopatra canokey-usbip-git pcsclite pcsc-tools veracrypt
pipx ensurepath
pipx install yubikey-manager
pipx install canokey-manager
pipx install twisted
pipx install ipython
sudo modprobe vhci-hcd # 手动加载usbip内核模块
echo vhci-hcd | sudo tee /etc/modules-load.d/vhci-hcd.conf # 开机自动加载usbip内核模块
# canokey-usbip 相关,用于模拟 Canokey

## 模拟 CanoKey 的 canokey-usbip 相关
# canokey-usbip /tmp/canokey-file 3240 true &
# sudo usbip attach -r localhost -b 1-1.1

# 允许非 root 用户访问 USB 设备
## 允许非 root 用户访问 USB 设备
# /etc/udev/rules.d/69-canokeys.rules
# 按照Canokey官方教程 https://docs.canokeys.org/userguide/setup/#udev 配置,最后一行取消注释
# 按照CanoKey官方教程 https://docs.canokeys.org/userguide/setup/#udev 配置,最后一行取消注释
# 完成后运行 sudo udevadm control --reload-rules && sudo udevadm trigger
# 重启后生效

# yay -S --needed remmina freerdp 用于测试RDP共享Canokey
## 用于测试RDP共享CanoKey
# yay -S --needed remmina freerdp

## pcsc 相关,用于ckman等软件连接CanoKey
sudo systemctl enable pcscd.socket
sudo systemctl enable pcscd
# 注意,这个会导致gnupg无法配置智能卡,解决方案以下两种任选一种即可。
#
# 第一种方案:使gnupg使用pcscd(我仅用了这个就可以了,完整内容可以参考下面的Arch Wiki链接)
# echo disable-ccid >> $HOME/.gnupg/scdaemon.conf
# gpg-connect-agent 'SCD KILLSCD' /bye
# 可能需要:使gnupg支持pcscd共享访问
# echo pcsc-shared >> $HOME/.gnupg/scdaemon.conf
# gpg-connect-agent 'SCD KILLSCD' /bye:
#
# 第二种方案:停止pcscd(不推荐)
# sudo systemctl stop pcscd.socket
# sudo systemctl stop pcscd
#
# 完成任意一种方案后,重新插入CanoKey。
# 参考资料:https://wiki.archlinux.org/title/GnuPG#GnuPG_with_pcscd_(PCSC_Lite)
# 参考资料: https://support.nitrokey.com/t/nk3-mini-gpg-selecting-card-failed-no-such-device-gpg-card-setup/5057/7

## 如果浏览器无法连接到CanoKey,可以尝试以下方法
# killall gpg gpg-agent ssh-agent pcscd
# sudo systemctl stop pcscd.socket
# sudo systemctl stop pcscd

## 关于密钥冷备份:
# 使用 `sudo mkdir /mnt/cold && sudo mount -t ntfs /dev/sdb3 /mnt/cold`挂载外接设备,这里可以直接挂载Ventoy安装时位于分区表尾部的保留空间。
# 建议使用 VeraCrypt 进行加密。
# 使用 gpg --home /mnt/veracrypt/.gnupg xxx 进行操作。注意`--home`必须是第一个参数。
# 这里可能需要适当进行`killall gpg-agent`等操作防止奇怪的bug。
```

关于Web Console,[新版](https://console.canokeys.org/)可以直接作为Chrome PWA应用安装,[旧版](https://console-legacy.canokeys.org/)可以使用我打包过的离线运行(`yay -S canokey-console-legacy`)。
关于Web Console,[新版](https://console.canokeys.org/)(可能)可以直接作为Chrome PWA应用安装,[旧版](https://console-legacy.canokeys.org/)可以使用我打包过的离线运行(`yay -S canokey-console-legacy`)。

关于`gpg-agent`,不用的时候记得kill掉以防止占用USB设备。

记得使用`shred -u -v``ramfs`保证文件私密性。
记得使用`shred -u -v`保证文件私密性。

## 丢进Ventoy

Expand Down
18 changes: 10 additions & 8 deletions about.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ Young-Lord 仅为一个曾用名字,不含任何意义。LY 与它无关。指

自由软件支持者,正在试图迁移到 GNU/Linux 系统(BTW I Use Arch)

PGP: `69D6E8DCB9E4117864368CA0EE4FB075119CE61F`,也可以在[这里](/pgp.asc)下载。

a11y(无障碍)与i18n(国际化)推动者,向本站使用的评论系统Cusdis提供过无障碍改进,向Termux Monet、Coursera、K-9 Mail等项目提交过翻译。

比较喜欢的游戏有 史丹利的寓言/蔚蓝/请出示文件/传送门/MC/樱之诗 等,大多为独立游戏,有少量gal。网游基本没碰过。
Expand Down Expand Up @@ -117,14 +119,14 @@ function ad_switch() {

另外,最好买二手的。

- YubiKey 5 NFC 或 [CanoKey Pigeon](https://item.taobao.com/item.htm?id=664914723920)
- ChatGPT账号
- Redmi K60 至尊版 16GB+1TB(或24GB+1TB)
- 树莓派/菠萝派 或类似的设备
- Wallpaper Engine
- Repainter
- 安卓智能手表(具体品牌/型号随意)
- 西数 My Passport 随行SSD 1TB(或更大)
- [x] YubiKey 5 NFC 或 [CanoKey Pigeon](https://item.taobao.com/item.htm?id=664914723920)
- [x] ChatGPT账号
- [ ] Redmi K60 至尊版 16GB+1TB(或24GB+1TB)
- [ ] 树莓派/菠萝派 或类似的设备
- [ ] Wallpaper Engine
- [ ] Repainter
- [ ] 安卓智能手表(具体品牌/型号随意)
- [ ] 西数 My Passport 随行SSD 1TB(或更大)

## 隐私政策

Expand Down
29 changes: 29 additions & 0 deletions pgp.asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEZXqWtRYJKwYBBAHaRw8BAQdAwXLEKu41uRWxF7VyfKvLEeD9IWMNbT4OKigh
q1XzD4K0JE5pa28gKENhbm9LZXkgdmVyLikgPGx5LW5pa29AcXEuY29tPoiTBBMW
CgA7FiEEadbo3LnkEXhkNoyg7k+wdRGc5h8FAmV6lrUCGwMFCwkIBwICIgIGFQoJ
CAsCBBYCAwECHgcCF4AACgkQ7k+wdRGc5h9SrgEAlwz3+BgJgOG+cxh8U2BEbaiO
424C8238/UQcv3D2+G0BALVpmR+43fSMH8TDr0W8FXrjkH81pVZXGNCVOHPI35YA
uDgEZXqWtRIKKwYBBAGXVQEFAQEHQJSuSXAkam7aDWfikAwDWAFHsykGjSgCDu8f
sW434YJeAwEIB4h4BBgWCgAgFiEEadbo3LnkEXhkNoyg7k+wdRGc5h8FAmV6lrUC
GwwACgkQ7k+wdRGc5h/IEgD/Q3gIGLFzFtPeH60BNtoXikxXblyf6mVTBX/XIFeM
1yEA/0Ha5HEBdVBfCMxDZWc+CJKiP5o4sX8CrTAxENUk1lADuDMEZXqXKRYJKwYB
BAHaRw8BAQdAt7W1aV6OuopRXcvRt1cSr6M8wJCFyLlGZZRJL+YttS6I7wQYFgoA
IBYhBGnW6Ny55BF4ZDaMoO5PsHURnOYfBQJlepcpAhsCAIEJEO5PsHURnOYfdiAE
GRYKAB0WIQTy6eIoD7mRGDp8lwrLOXXsw1A8sgUCZXqXKQAKCRDLOXXsw1A8sgBZ
AP4nHp8p/uuELTpUGR/9DSdjLve4xPMjqsMOl0hvVXBMGQEAsKRGHyO0aHH+lcW+
D1AdxhkDpbZrshSy1ca1LQ2nAgXIDgD/fZyIj33FiLA2iKmBu6DqXlLSen0/YXYO
6LLLrdntbSUBALDnfXDi6aePHfTPwzfLPN36+vl2SnfmdhnL5Vc6uZIKuDgEZXqX
QxIKKwYBBAGXVQEFAQEHQC721MNe+LqI+phAH1m0DOTYdjkQgro7g7jWJGGcurx7
AwEIB4h4BBgWCgAgFiEEadbo3LnkEXhkNoyg7k+wdRGc5h8FAmV6l0MCGwwACgkQ
7k+wdRGc5h//FwEAiB0+tf38ubPLxDq7oo/MOUIjJk+MnRP3ZGyqqU89K8oBAMSe
unxh59UfMsEVrCyyVA5QgKiBxQ5gyZjT/4b27GsKuDMEZXqXUBYJKwYBBAHaRw8B
AQdALIi4GNTcOFxApX6I6tOxLYqzrSBjdcj++7/7jE0xUg2I7wQYFgoAIBYhBGnW
6Ny55BF4ZDaMoO5PsHURnOYfBQJlepdQAhsCAIEJEO5PsHURnOYfdiAEGRYKAB0W
IQSR9dkgR7AI5YBvMvSFGjZsC5qr2wUCZXqXUAAKCRCFGjZsC5qr2yk+AP9tbT3W
hzO/FFH1SQ6WGaZkbEW4faDZ+lfN62BlVqbx3QEA75yhYJ8dEEFZgjNwVRHH+b6O
6aFuTKKjXuUDsfKyLwXzfQD+M0ck/wyITRVWggpNjDwOqVwxc/vqkNZopDBL5EnX
nwkA/Ar3Z9oqsMNIAdL6MFGn0fjlA8BTM2lKu+g6P0KkjTAN
=yYFK
-----END PGP PUBLIC KEY BLOCK-----

0 comments on commit 4cb5c48

Please sign in to comment.