首页 > 其他分享 >国产物理密钥Canokey踩坑记录

国产物理密钥Canokey踩坑记录

时间:2024-11-01 15:50:08浏览次数:4  
标签:-- gpg agent 国产 密钥 gnupg Canokey ssh

前段时间咱本着再不买以后就买不到了的心态购入了国产物理密钥Canokey,不得不说这价格是真的坚挺,至死不降那种。。。
闪烁的蓝灯,优雅的签名,逼格算是拉满了,不过使用过程是真的曲折坎坷。
咱主要是买来用于git签名与ssh认证的,配置过程前辈们已经写的很清楚了,写好了有奖励,写不好有惩罚(悲)
所以咱就不怎么写了,主要写使用OpenPGP Card的过程中遇到的坑。

基本配置:

配置SSH验证:

编辑 ~/.gnupg/gpg-agent.conf,加入:

enable-ssh-support

然后:

gpg --list-keys --with-keygrip

将keygrip写入~/.gnupg/sshcontrol
然后:

export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpgconf --launch gpg-agent

git签名:

git config --global user.signingkey [key]
git config --global commit.gpgsign true

Github提示密钥已存在:

生成子密钥前咱git提交一直是主密钥签的。
子密钥生成完后在github添加了好几次都提示密钥已存在,但又不识别我子密钥。
这时候先把原来的删了再添加就好了。真是离谱的bug。

卡片url设置:

找了半天网上都没写怎么设置这个地址。
在上传完你的key到keyserver后,浏览器访问keyserver,一般有个搜索框,搜索你的密钥,会显示一串可以复制的链接,链接大概像这样:
https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5f3d5c278995c790
把这个填入card的url里面,在其他设备上就可以直接fetch了。

修复电脑usb权限:

创建/etc/udev/rules.d/10-canokey.rules
写入:
SUBSYSTEM"usb", ATTR{manufacturer}"canokeys.org", GROUP="moe-hacker"
由于咱电脑只有咱一个用户,所以干脆不新建group了,小朋友千万不要学,不严谨,会被带坏的。

wsl1 使用:

你需要一个win-gpg-agent。
然后把windows的gpg-agent连接到wsl

rm /root/.gnupg/S.gpg-agent
socat UNIX-LISTEN:/root/.gnupg/S.gpg-agent,fork UNIX-CONNECT:/mnt/c/Users/moe-h/AppData/Local/gnupg/agent-gui/S.gpg-agent &
rm /root/.gnupg/S.gpg-agent.ssh
socat UNIX-LISTEN:/root/.gnupg/S.gpg-agent.ssh,fork UNIX-CONNECT:/mnt/c/Users/moe-h/AppData/Local/gnupg/agent-gui/S.gpg-agent.ssh &

moe-h是咱的用户名,辣鸡M$用户名是错的。

Termux中使用:

需要安装scdaemon这个包。termux下的读取就算在root用户下也不是多很稳定,so f**k u android !
如果你的安卓版本够低,可以试试termux-usb。
咱实测能弹出授权窗口,但会卡死。
因此直接root使用了。
tsu下编辑~/.bashrc,这是目前我用的一个比较稳定的配置:

cd ~
killall -9 gpg-agent 2>&1 > /dev/null
killall -9 scdaemon 2>&1 > /dev/null
export GPG_TTY=$(tty)
scd=`/data/data/com.termux/files/usr/libexec/scdaemon --daemon|cut -d ";" -f 1|cut -d "=" -f 2`
export SCDAEMON_INFO=$scd
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpgconf --launch gpg-agent
export GPG_TTY=$(tty)
gpg-connect-agent updatestartuptty /bye > /dev/null

如果你用的容器,可能需要在里面安装usb-utils(usbutils)这个包。

修复终端中无法输入密码:

在有些地方(比如chroot容器里),tty会提示当前未在tty中
此时只需要:

script -q -O /dev/null

script命令会自动创建一个pty。

最后的一些碎碎念:

不得不说物理密钥小众确实是有原因的,就连我这个只是没接触过这类产品的半萌新上手都得半天。不过拿这东西签git是真的帅23333

标签:--,gpg,agent,国产,密钥,gnupg,Canokey,ssh
From: https://www.cnblogs.com/Moe-hacker/p/18520412

相关文章

  • 打造数据采集新境界 | 国产化CNTI-U2K21全新亮相
    在高速发展的环保、电力等领域,数据采集的重要性日益凸显,通过采集的数据快速与准确来实现对资源的管控与分析。如何高效、准确地收集和处理数据成为关键。随着国产化热潮的不断推进,对于数据采集终端的国产化转化也尤为重要。为什么需要数据采集终端?数据安全数据采集终端可以......
  • 工业平板电脑国产化替代方案
    工业平板电脑国产化发展随着信息技术的高速发展,工业4.0已经成为了当前工业领域的一种全新变革模式,突破了传统工业生产的局限,将数字化、网络化和智能化技术融入到生产过程中,实现了机器与机器的互联互通、人机之间深度融合。作为人与计算机或机器设备之间实现信息传递与控制的......
  • ssh分发密钥脚本
    使用场景->ansible#!/bin/bash#author:kylerock#desc:#1.一键创建秘钥对(如果不存在)#2.一键分发公钥#3.一键检查#1.varskey=/root/.ssh/id_rsaips="73141"pass=1#ips="`cat/server/files/ip.txt`"#2.一键创建秘钥对if[!-f$key];thenssh-k......
  • 如何给Github配置SSH密钥
    Github配置SSH密钥1.生成SSH密钥打开终端并输入以下命令(-C后是你GitHub的邮箱地址):Windows下请在:GitBash下操作ssh-keygen-trsa-b4096-C"[email protected]"#按Enter保存密钥到默认路径(/home/username/.ssh/id_rsa)。#与Linux类似,Windowsssh保存使用......
  • 国产化基于 Zynq-7100 的高性能计算模块FMC载板
    国产化基于Zynq-7100的高性能计算模块FMC载板是一款高性能计算模块。主控芯片采用Xilinx公司Zynq-7系列SoC家族中的XC7Z100-2FFG900(兼容XC7Z045-2FFG900,国产FMQL45T900,和XC7Z035-2FFG900)。其内含ARM公司的Cortex-A9MPCore处理器系统与Xilinx的K......
  • 《神经网络、机器学习和深度学习:开启智能时代的三把密钥》
    神经网络、机器学习和深度学习是人工智能领域中非常重要的概念,它们之间既有联系又有区别。神经网络原理神经元模型:神经网络的灵感来源于人类大脑的神经元结构。在人工神经网络中,每个神经元接收来自其他神经元或输入层的多个输入信号,并对这些输入进行加权求和。每个输入......
  • 国产操作系统成功安装微信
    微信目前几乎是上网必备软件,不仅在移动设备上普遍使用,也因其文件处理能力强、与移动设备端可同步,其在电脑上也普遍使用。随着国产操作系统的蓬勃发展,使用该系统的用户越来越多,但微信官网上的微信安装包没有支持国产操作系统的。经过本人的长时间搜索下载与安装试用,发现了一个可......
  • Java - 文字识别 ;示例代码基于SpringAI和国产大模型
    文字识别在Java开发中的应用在Java开发中,将图像中的文字进行识别能力被广泛应用于多种场景,比如自动审核图片内容、商品搜索分析等。过去,这类需求主要通过OCR(光学字符识别)技术来实现,但其对于复杂图像的处理效果往往不尽人意。如今,随着大模型技术的发展,利用这些先进的AI模型......
  • 更安全高效的文件传输工具,Ftrans国产FTP替代方案可以了解
    文件传输协议(FTP),诞生于1971年,自20世纪70年代发明以来,FTP已成为传输大文件的不二之选。内置有操作系统的FTP可提供一个相对简便、看似免费的文件交换方法,因此得到广泛使用。随着企业发展过程中新增的文件传输需求,FTP的局限性开始凸显,企业都在寻求国产FTP替代:1.传输速度慢:FT......
  • 更安全高效的文件传输工具,Ftrans国产FTP替代方案可以了解!
    文件传输协议(FTP),诞生于1971年,自20世纪70年代发明以来,FTP已成为传输大文件的不二之选。内置有操作系统的FTP可提供一个相对简便、看似免费的文件交换方法,因此得到广泛使用。 随着企业发展过程中新增的文件传输需求,FTP的局限性开始凸显,企业都在寻求国产FTP替代:1.传输速度慢:FT......