gpg 相关
在参加完 Debian 第 24 界年会 gpg key 签名会 后的 签名关系图
其它
gpg 相关
- 铜豌豆的公钥 #gpg
《铜豌豆 Linux》使用业界通用的 GPG 公私钥签名技术来保证用户和铜豌豆服务器之间,数据传输端到端的安全通信。
铜豌豆公钥在 iso 操作系统安装和一键安装脚本安装的时候,已经自动导入 apt 公钥库。
一般情况下,不需要使用如下手工方式获取。
公钥获取方式:
后续就可以用该公钥来手工验证铜豌豆 iso 文件签名、apt 软件源签名、jigdo 文件等签名。
注:
apt-key list 命令可以查看当前 apt 公钥库里面所有公钥列表。
- 添加 ssh 登录密钥 #sshadd
运行 ssh-add 命令,输入私钥密码。后续远程登录机器,就不用再次输入私钥密码,一直在本次登录有效。
- 使用 GPG ssh 公钥登录服务器 #gpgssh
GPG 密钥对,也可以用于 ssh 登录远程服务器。实现此功能的相关步骤如下,供参考:
- 生成具备 SSH 认证功能的子钥
具体请查阅
相关文档,
关键点是用于 ssh 登录认证的子钥,需要有身份验证功能。
这种类型的子钥,需要用 --expert 专家模式才能够生成。
例如:
gpg --expert --edit-key atzlinux@yeah.net
gpg> addkey
请选择您要使用的密钥类型:
(3) DSA(仅用于签名)
(4) RSA(仅用于签名)
(5) ElGamal(仅用于加密)
(6) RSA(仅用于加密)
(7) DSA(自定义用途)
(8) RSA(自定义用途)
(10) ECC(仅用于签名)
(11) ECC(自定义用途)
(12) ECC(仅用于加密)
(13) 现存的密钥
您的选择是? 8
RSA 密钥的可实现的功能: 签名(Sign) 加密(Encrypt) 身份验证(Authenticate)
目前启用的功能: 签名(Sign) 加密(Encrypt)
(S) 签名功能开关
(E) 加密功能开关
(A) 身份验证功能开关
(Q) 已完成
在这里选择 A
- 安装命令行 gpg 密码输入软件包
apt -y install pinentry-tty pinentry-curses
- 修改 ~/.bashrc
增加如下几行:
export GPG_TTY=$(tty)
if [[ -n "$SSH_CONNECTION" ]] ;then
export PINENTRY_USER_DATA="USE_CURSES=1"
fi
gpg-connect-agent updatestartuptty /bye >/dev/null
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
- 修改 ~/.gnupg/gpg.conf
增加如下一行:
pinentry-mode loopback
- 修改 ~/.gnupg/gpg-agent.conf
增加如下几行:
enable-ssh-support
allow-loopback-pinentry
disable-scdaemon
- 修改 ~/.gnupg/sshcontrol
将生成的具备认证功能 [A] 的“子钥 keygrip”加入该文件。
gpg --list-keys --with-keygrip atzlinux@yeah.net
sub rsa4096 2020-06-05 [A] [有效至:2021-06-05]
Keygrip = D9160EA08492B604A0DFEB0922104A9B9CDFB47E
- 将 gpg 公钥导出,放入远程机器的 ~/.ssh/authorized_keys
运行
ssh-add -L 或者
gpg --export-ssh-key user-id
命令,将会生成 ssh 远程登录公钥。
相关信息,请参阅:
https://wiki.archlinux.org/index.php/GnuPG#SSH_agent
- 使用主钥方式
使用 GPG 的主钥,也可以设置认证功能,用于 ssh 登录服务器。
gpg --edit-key 主钥 keyid 进入 gpg 交互式提示符后,使用 change-usage
修改添加 (A) 身份验证功能开关,
其余步骤和使用子钥一样。
指定导出某个子钥或主钥的 ssh 公钥,可以在 keyid 后加感叹号实现,如:
gpg --export-ssh-key 0xC7909957!
- 使用 GPG ssh 公钥的优点
- 提升私钥安全性
普通的 ssh 公钥登录,生成的私钥文件:
直接存放在用户目录的 .ssh 目录下;
私钥文件名默认是固定的 id_rsa、id_dsa 等;
很多私钥文件没有设置密码;
甚至为了方便,直接上传到了网络存储,
这样导致 ssh 的私钥文件,相对容易被窃取。
使用 GPG ssh 公钥,其私钥使用 gpg 的方式统一管理。
必须使用 gpg --export-secret-keys 或 --export-secret-subkeys 命令才能够将私钥导出,必须输入私钥密码。
极大的增加了私钥文件被窃取的难度。
- 简化开通服务器登录权限步骤
如果一个 gpg key 配置了 ssh 认证功能,并将 key 上传到了 key server,那么其它人就可以通过 key id 搜索下载这个 key,并用 --export-ssh-key
命令将该 key 的 GPG ssh 公钥导出。
导出的 GPG ssh 公钥,可以直接放到服务器用户目录的 .ssh/authorized_keys
文件里面,这样就可以更加方便的让对方直接登录服务器,少了一次人工向对方索取 ssh
公钥的步骤,更加便捷。
- 统一管理
将登录服务器的 ssh 公钥和邮件签名、加密、deb 打包签名、git 提交签名等相关工作,统一用一个 gpg id 管理起来,
可以提升工作效率。
注:其它相关影响
设置 GPG ssh 公钥方式后,由于修改了密码输入方式为 loopback,会影响到部分程序使用 GPG 时的密码输入。
需要手工指定 pinentry-mode 为 ask。
- 把某个密钥对从钥匙环里面删除 #delkey
gpg --pinentry-mode ask --delete-secret-keys 0x8F88E2B4
- 雷鸟邮件客户端 enigmail 匹配调整 #enigmail
雷鸟邮件客户端常用的 GPG 加密插件 enigmail 会出现无法输入密码导致报错的现象。
请按如下方式解决:
在雷鸟里面依次进入 enigmail,选项,显示专家设置和菜单,高级,
附加到 Gnupg 的参数 里面填入: “--pinentry-mode=ask”
注:雷鸟从版本 1:78.4.0-1~deb10u1 开始,本身已经默认支持使用 GPG,不需要额外安装 enigmail 插件。
在雷鸟版本升级时,enigmail 插件能够把旧版本的 GPG 数据,导入新版本的雷鸟。
- 以 8 个字符的方式,显示主钥及子钥的 key ID #keyidshort
gpg --keyid-format 0xshort -k
也可以把下面这行加入 gpg 配置文件 ~/.gnupg/gpg.conf:
keyid-format 0xshort
让 gpg 命令默认以短格式 8 字符方式显示 key ID。
- 查看当前用户下 gpg 代理运行情况 #gpgagent
systemctl --user status gpg-agent
-
安装 GnuPG 图形化前端软件包--海马,可以图形化方式查看当前密码、密钥使用情况 #seahorse
apt install seahorse
- gpg 缩写介绍
sec => 'SECret key'
ssb => 'Secret SuBkey'
pub => 'PUBlic key'
sub => 'public SUBkey'
其它
- 查看某服务当天的日志
journalctl -S today -u bluetooth.service
- 命令行查看 CA 证书信息
安装 certinfo 软件包,certinfo atzlinux-uefi-ca.crt
- 在 vi 里面高亮显示行尾的空格和 tab 键 #vi-trailing-whitespace
在 vi 配置文件里面,一般是用户目录下的 .vimrc,加上如下内容:
highlight RedundantSpaces ctermbg=red guibg=red
match RedundantSpaces /\s\+$/
- 添加 iso 文件到本地 apt 软件包安装源 #apt-cdrom
在系统安装后,使用 apt install 安装其它软件包时,经常需要联网下载一些依赖包,比较耗时。
可以先一次性下载 Debian 官方的 iso 文件到本地,用 apt-cdrom add 命令,将 iso 文件里面的所有软件包,加入本地 apt 软件包安装源。
以 Debian 10.9.0 第一张 DVD iso 文件为例:
假设下载的 iso 文件放在:/home/iso/debian-10.9.0-amd64-DVD-1.iso
运行 apt-cdrom add 命令,会提示挂载光盘,打开另外一个终端窗口用 root 运行 mount 命令:
mount -o loop /home/iso/debian-10.9.0-amd64-DVD-1.iso /media/cdrom/
在添加完成后, /etc/apt/sources.list 文件会增加如下一行:
deb cdrom:[Debian GNU/Linux 10.9.0 _Buster_ - Official amd64 DVD Binary-1 yyyymmdd-HH:MM]/ buster contrib main
以后安装软件的时候,如果需要的软件包,已经在这张光盘里面,系统就会提示你 mount 这个 iso 文件到 /media/cdrom。
如果不想每次手工 mount 这个 iso 文件,还可以在:
/etc/fstab
增加如下一行:
/home/iso/debian-10.9.0-amd64-DVD-1.iso /media/cdrom iso9660 loop 0 0
让系统自动使用 mount 好的这个 iso 文件。
- 安装 6.x 系列 rt 内核 #kernel-6.x
Debian 11 版本已经将 6.x 内核移植过来,在铜豌豆 11 版本中,可以直接安装。
root 在命令行执行:
- apt update;apt upgrade
- 确认当前最新的 6.x 内核软件包名称
因 6.x 系列内核在不断升级中,可以使用
apt search linux-image-6 | more
搜索当前最新版本号,软件包名使用含有 rt-amd64 的即可。
- 安装内核
以 linux-image-6.1.0-0.deb11.11-rt-amd64 为例:
apt install linux-image-6.1.0-0.deb11.11-rt-amd64
- 重启机器
安装完成后,会自动设置 grub 默认使用新内核启动系统,重启机器生效。
- 查看内核版本
uname -a
Linux atzlinux-ff 6.1.0-0.deb11.11-rt-amd64 #1 SMP PREEMPT_RT Debian 6.1.38-4~bpo11+1 (2023-08-08) x86_64 GNU/Linux
- 安装普通内核 #kernel-normal
从 10.3.2 版本开始,为提升操作系统的响应速度,默认安装了 linux-image-rt-amd64 内核。
普通内核的安装命令如下:
- 铜豌豆 11 12 版本系列
apt install linux-image-amd64
安装完成后,重启机器,在 grub 启动菜单里面选择 高级选项 Advanced options,再选择进入普通内核。
如果希望每次启动机器,默认进入普通内核,请修改 /boot/grub/grub.cfg 文件。
或者使用图形界面的软件修改,参见使用技巧:
设置开机默认启动操作系统 #grubcfg
- 安装 Debian 最新版本 内核 #kernel-sid
Debian 最新版本内核位于:
https://packages.debian.org/sid/linux-image-amd64
请点击 “其他与 linux-image-amd64 有关的软件包”
下面的
* dep: linux-image-x.y.z-amd64 (= x.y.z-n) 链接,进入 具体内核版本 软件包页面下载安装。
- 安装 NVIDIA 显卡厂家闭源驱动及相关软件 #nvidia
NVIDIA 显卡有多种型号,不同的型号,对应的厂家闭源驱动软件包、设置软件包不一样。
安装 NVIDIA 显卡厂家闭源驱动,操作步骤比较多,风险比较高,强烈不建议对 Linux 不熟悉的用户自行安装。
请用 root 执行下述操作。
- 安装 nvidia-detect 软件包,用于检测 NVIDIA GPU 型号
apt install nvidia-detect
- 在命令行运行 nvidia-detect 命令
该命令会检测当前机器上的 NVIDIA 显卡型号,并给出对应的厂家驱动软件包名称。
- 请按该指引先安装 -- 普通内核
由于显卡厂家闭源驱动,不支持 rt 内核,需要重新安装不带 rt 功能的普通内核。
- 重启机器,用普通内核进入系统
如果机器打开了安全启动,请在重启机器时,进入 BIOS 关闭安全启动。
- 卸载 rt 内核
由于 NVIDIA 厂家显卡闭源驱动不支持 rt 内核,并且 rt 内核会影响闭源驱动软件包的安装,导致安装过程报错,
所以需要先卸载原有的 rt 内核、rt 内核头文件。
apt purge linux-image-rt-amd64 linux-headers-rt-amd64
apt purge linux-image-6.1.0-22-rt-amd64 linux-headers-6.1.0-22-rt-amd64
apt autoremove
注:请替换为当前使用的内核版本号。
在上面普通内核的安装步骤中,有部分情况会自动卸载该 rt 内核,该步骤再次执行时,会有提示已经没有 rt 内核。
- 安装普通内核头文件
- 铜豌豆 11 12 版本系列
apt install linux-headers-amd64
- 根据显卡检测工具 nvidia-detect 的推荐,安装相应驱动软件包
nvidia-driver,
nvidia-legacy-390xx-driver,
nvidia-tesla-418-driver,
nvidia-tesla-450-driver,
nvidia-tesla-470-driver,
软件包名称中的版本号数字越小,对应的显卡型号发布越早。
同一个显卡,可以同时被上述软件包的一个或者几个支持,请选择其中一个安装即可,建议选择版本号数字较大者安装。
- 铜豌豆 11 12 版本系列
apt install 驱动软件包名称
- 安装 nvidia 厂家闭源驱动配置工具
Nvidia 显卡厂家闭源驱动安装好后,还可以安装图形界面的显卡配置工具。
该工具可以对显卡进行各项设置,其默认软件包名为 nvidia-settings 。
但不同显卡驱动版本,对应的这个配置工具软件包名称,还可以带后缀,
形式为: nvidia-settings-name-version 。
如:nvidia-settings-legacy-390xx,nvidia-settings-tesla-470 等。
请根据驱动软件包名称,安装相应的配置工具软件包。
- 铜豌豆 11 12 版本系列
apt install nvidia-settings
如果是老显卡,则为:
apt install nvidia-settings-legacy-390xx
- 重启机器
机器重启后,在应用程序菜单中,“系统--NVIDIA X 服务器设置”,查看厂家闭源驱动及相关信息。
参阅:
https://wiki.debian.org/NvidiaGraphicsDrivers/
- 查看 Intel GPU 使用情况 #intel_gpu_top
用 root 运行 intel_gpu_top 命令可以采用类似 top 的方式查看 Intel GPU 的使用情况
- 查看 AMD GPU 使用情况
radeontop
- 查看 Nvida GPU 使用情况
- gpustat
- nvidia-smi
需安装 Nvidia 厂家闭源驱动,并安装 nvidia-smi 软件包。
- 向 Linux 硬件网站上报机器硬件信息 #hw-probe
机器需要连上网络,用 root 账号在终端运行
hw-probe -all -upload
命令执行完成后,会在终端返回一个类似如下地址:
https://linux-hardware.org/?probe=89ef61c3ee
点击链接即可访问查看机器硬件驱动信息。
提示:该命令不会导致个人信息泄露,在上报时,已经去掉了机器各类 SN 号,MAC 地址等和硬件绑定的唯一标志。
- 使用 jigdo 下载制作铜豌豆 iso 镜像文件 #jigdo
jigdo 是一个下载制作 iso 镜像文件的工具。
该工具可以使用原有镜像文件、网络镜像网站快速下载制作 iso 镜像文件。
Debian 官方 jigdo 介绍:
https://www.debian.org/CD/jigdo-cd/
下面以制作铜豌豆 11.5.1 iso 镜像文件为例说明:
(请用新的铜豌豆 iso 版本号替代示例中的文件和路径名称)
- 安装 jigdo 软件
root 账号下,在命令行执行:apt -y install jigdo-file
- 挂载原有 iso 文件
如有有已经下载的 Debian 11 最新版本 iso 镜像文件或者铜豌豆 iso 上一版本的镜像文件,请先挂载:
mount -o loop /home/iso/debian-11.5.0-amd64-DVD-1.iso /media/cdrom/
后续步骤可以使用普通账号执行。
- 下载 jigdo 相关文件
相关文件目录为:
https://www.atzlinux.com/atzlinux-cd/11.5.1/amd64/jigdo-dvd/
请执行如下命令下载:
wget https://www.atzlinux.com/atzlinux-cd/11.5.1/amd64/jigdo-dvd/atzlinux-11.5.1-amd64-DVD-1.jigdo
wget https://www.atzlinux.com/atzlinux-cd/11.5.1/amd64/jigdo-dvd/atzlinux-11.5.1-amd64-DVD-1.template
- 执行制作命令
jigdo-lite atzlinux-11.5.1-amd64-DVD-1.jigdo
- 下载网址信息
jigdo 制作过程,会提示输入文件来源信息,需要用到来源如下:
- 原有 iso 文件挂载的本地目录
如:/media/cdrom/,请优先输入。
- Debian 网络镜像源
http://mirrors.cloud.tencent.com/debian/
http://mirrors.cloud.tencent.com/debian-security/
- 铜豌豆 CDN 软件源
https://cdn.atzlinux.com/atzlinux/
- Debian 快照镜像源
http://snapshot.debian.org/archive/debian/20210620T085058Z/
注:
http://snapshot.debian.org 是 Debian 快照镜像源,请到该网站上选择铜豌豆 iso 发布前一天的地址填入。
在大部分情况下,不需要使用该镜像源的软件包,就可以完成整个 iso 文件的制作。
- 免 U 盘安装铜豌豆系统 #hd-install
如果电脑已经有安装其它版本的 Linux,手上又没有 U 盘,也可以从硬盘直接安装铜豌豆系统。
- 备份电脑数据
硬盘安装 Linux 系统,属于风险非常高的操作,请切记备份数据!
- 检查磁盘空间
建议给铜豌豆系统根分区预留 25G 以上磁盘空间。
机器上原来用于存放数据的分区,可以在新安装的铜豌豆系统和原有 Linux 系统之间共享。
- 下载最新版铜豌豆 iso 安装文件到任一 Linux 分区下
该 Linux 分区最好是使用 Linux 默认的 ext4 文件系统。
请直接把 iso 安装文件放到该分区顶级目录下,不要放入子目录。
- 下载安装内核和安装初始文件到 /boot 目录下
用 root 操作:
cd /boot
wget https://mirrors.cloud.tencent.com/debian/dists/bullseye/main/installer-amd64/current/images/hd-media/vmlinuz
wget https://mirrors.cloud.tencent.com/debian/dists/bullseye/main/installer-amd64/current/images/hd-media/initrd.gz
- 铜豌豆 12.x 版本
cd /boot
wget https://mirrors.cloud.tencent.com/debian/dists/bookworm/main/installer-amd64/current/images/hd-media/vmlinuz
wget https://mirrors.cloud.tencent.com/debian/dists/bookworm/main/installer-amd64/current/images/hd-media/initrd.gz
修改 grub 配置文件,增加铜豌豆安装条目菜单
grub 配置文件路径一般为:/boot/grub/grub.cfg
将该文件第一个启动条目菜单整体复制,并粘贴到下面形成一个新铜豌豆安装条目,然后修改里面的 linux 行和 initrd 行。
示例如下:
linux /vmlinuz debian-installer/locale=zh_CN console-keymaps-at/keymap=us keyboard-configuration/xkb-keymap=us keyboard-configuration/layout=us vga=788 quiet preseed/file=/cdrom/simple-cdd/default.preseed
echo '载入初始化内存盘...'
initrd /initrd.gz
重启机器,在 grub 启动界面选择铜豌豆安装条目
后续步骤跟铜豌豆正常安装一样。
在分区步骤,请不要对放置有 iso 文件的分区进行挂载操作
警告:如果不慎进行了这个操作,会导致安装失败。需要用 U 盘制作 iso 文件进行重装。
将铜豌豆系统安装到 U 盘,移动硬盘 #hd-live
从 10.9.2 版本 iso 开始,支持此项功能。
警告:此功能尚处于测试阶段,极易出现机器无法启动等异常,新手慎重使用!
在磁盘分区的步骤,请使用安装到整个磁盘的方式。
如插入的 U 盘设备名称是 sdb,就选择在整个 sdb 硬盘上安装。
后续步骤跟铜豌豆正常安装一样。
注:
在使用 EFI 启动的电脑上安装,安装完成后,机器原有硬盘上的系统引导条目,grub 菜单等不受影响;
但在 BIOS 方式启动的电脑上,在安装完成后,电脑原有的 grub 引导会被改写,移动 U 盘拔掉后,原有电脑启动时,会报 grub 分区错误,无法启动。
BIOS grub 异常处理步骤:
- 插入原有 U 盘,重启机器进入原有系统
用 root 运行 dpkg-reconfigure grub-pc 命令,在 sda 上重新安装 grub。
- 插入原有 U 盘,重启机器进入 U 盘系统
用 root 运行 dpkg-reconfigure grub-pc 命令,在 sdb 上重新安装 grub。
《铜豌豆 Linux》官网二维码
版权所有 © 《铜豌豆 Linux》 项目网站版权协议为(CC BY-NC-ND 4.0)