You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将GPG密钥迁移到树莓派并解决导入无有效OpenPGP数据错误

GPG密钥导入树莓派报错解决方法

报错根因

你遇到的gpg: no valid OpenPGP data found报错,核心原因是ssh 交互式输入登录密码的过程会挤占管道的输入流,导致远程树莓派上的gpg进程收到的是ssh的交互数据,而非你本地导出的GPG密钥内容。

注意:执行所有导出操作前请确认填写的KEY_ID正确,可以先在本地执行gpg --list-secret-keys查询对应密钥的ID。

解决方法1:通过中间文件传输(操作最稳妥)

  • 第一步:本地导出密钥到明文文件
# 导出私钥
gpg --armor --export-secret-key KEY_ID > secret-key.asc
# 导出公钥
gpg --armor --export KEY_ID > public-key.asc
  • 第二步:用scp工具将密钥文件传输到树莓派
scp secret-key.asc public-key.asc pi@bb8:/home/pi/
  • 第三步:登录树莓派执行导入操作
# 登录树莓派
ssh pi@bb8
# 导入公钥
gpg --import public-key.asc
# 导入私钥,按提示输入密钥密码即可
gpg --import secret-key.asc
  • 第四步(必做,避免密钥泄露):导入完成后删除所有明文密钥文件
# 本地终端执行
rm secret-key.asc public-key.asc
# 树莓派终端执行
rm /home/pi/secret-key.asc /home/pi/public-key.asc

解决方法2:免密登录后直接管道传输(无中间文件)

如果不想留存明文密钥文件,可以先给树莓派配置ssh公钥免密登录,再执行管道命令即可:

  • 第一步:配置本地ssh公钥到树莓派信任列表,按提示输入树莓派登录密码
ssh-copy-id pi@bb8
  • 第二步:直接执行导出导入命令
# 导入私钥
gpg --armor --export-secret-key KEY_ID | ssh pi@bb8 gpg --import
# 导入公钥
gpg --armor --export KEY_ID | ssh pi@bb8 gpg --import

验证结果

登录树莓派执行以下命令,确认密钥导入成功:

# 查看私钥列表
gpg --list-secret-keys
# 查看公钥列表
gpg --list-keys

能查询到对应KEY_ID的密钥信息即为操作成功,后续可正常使用该密钥为Git提交签名。

内容的提问来源于stack exchange,提问作者Milan Ferus-Comelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:42:02