如何将pgp私钥传输到另一台计算机? [关闭]

2024-05-12

I read 本文 http://www.robertsosinski.com/2008/02/18/working-with-pgp-and-mac-os-x/ (存档链接 https://web.archive.org/web/20100605161116/http://www.robertsosinski.com/2008/02/18/working-with-pgp-and-mac-os-x/%5D)这很好地解释了如何在 macOS 上设置 PGP。但我计划使用生成的密钥来签署 Git 提交,因此我认为我需要将密钥传输到其他计算机。它是否正确?如果是这样,在设备之间传输这些密钥的最佳方式是什么?


是的,您需要转移密钥。 Mac 和 Linux 的工作原理相同,将密钥存储在~/.gnupg。传输文件的最安全方法是使用scp(ssh 的一部分):

scp -rp ~/.gnupg othermachine:

但是,您需要有ssh首先工作。

使用 USB 闪存驱动器传输它们并不是一个好主意,因为即使您删除了文件,您的私钥也会留在该驱动器上。尽管它受到密码保护,但如果有人掌握了密钥文件的副本,他们就可以在闲暇时对其进行长时间的暴力攻击。

我不知道 Windows 上该目录的位置。 gpg 文档会说,并且内容几乎肯定是相同的。

复制整个密钥环既快速又简单,但有时您希望能够在计算机之间移动单个密钥,而不会覆盖整个密钥环并丢失已有的密钥。可以有选择地复制单个密钥gpg --export-secret-key and gpg --import。如果您可以通过 ssh 访问目标计算机,则可以使用管道执行此操作,并且不需要在任何地方存储中间密钥:

如果您使用的计算机已经拥有密钥:

gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import

如果您所在的机器需要密钥:

ssh othermachine gpg --export-secret-key SOMEKEYID | gpg --import

If gpg不在远程计算机上的默认位置之一(例如,它位于/opt/local/bin在 Mac 上)您必须提供 ssh 的完整路径,或将其符号链接到标准位置之一,例如/usr/local/bin.

请注意,传输的数据仍受密码保护,并且密钥在目标处的密码与源处的密码相同。如果您想在每个位置使用不同的密码,则需要在目标处更改密码,或者在导出之前在源处临时更改密码。我需要与一位同事共享一个密钥,以便他能够更新我们共同管理的 Debian 软件包存储库,但我不想与他共享我的密码。因此,我将密码更改为临时密码,将导出的密钥发送给他(通过 gpg 加密的电子邮件!),口头告诉他临时密码,并要求他在导入密钥后立即设置新密码。然后,我将密钥副本上的密码更改回原来的密码。


更新于2021-03-03

使用 GnuPG 2.0,如果您从远程计算机导出密钥并且没有 X11 连接转发,则在输入密码时可能会遇到问题。例如,gpg说“无法打开'/dev/tty'”。如果您强制使用伪终端分配ssh -t密钥与终端活动(例如密码提示和\rs。解决这个问题的一种方法是:

ssh othermachine gpg --passphrase-fd 0 --pinentry-mode loopback ...

然后您需要输入密码并按 Enter 键。不会出现提示,并且不会抑制回显(因此密码将在您的终端上可见)。如果您对回声感觉强烈,可以使用以下命令暂时将其关闭stty -echo并再次返回stty echo。这一切都可以整合到一个命令中,如下所示:

stty -echo; \
  ssh othermachine gpg --passphrase-fd 0 --pinentry-mode loopback \
    --export-secret-key SOMEKEYID | gpg --import; \
stty echo

但是,您很少需要这样做,因为到目前为止,最常见的情况是从您所在的计算机导出并导入到您通过 ssh 访问的远程计算机。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将pgp私钥传输到另一台计算机? [关闭] 的相关文章

  • 如何在 AES 加密中使用随机数进行解密

    我是密码学新手 我需要使用 AES 和一些配置来加密文本 Encryption mode GCM Key size 256 bits Nonce size 96 bits MAC size 128 bits 由于 AES 是一种对称算法 所
  • 将加密从 C++ (crypto++) 匹配到 C#

    我正在尝试使用 crypto 和 c 来匹配 c 上的加密方案 但似乎无法在两者上获得相同的结果 它们都对自己起作用 但不是从一个到另一个 任何帮助都会很棒 使用 Crypto 的 C 代码 std string key 012865678
  • 将列表传递给 PyCrypto 中的 AES 密钥生成器

    我尝试使用 Pycrypto 生成 AES 密钥 但收到以下错误 类型错误 列表 不支持缓冲区接口 对于以下声明 aescipher AES new mykey AES MODE ECB mykey 属于类型list并包含 18854347
  • 字母表中的加密和解密 - Python GCSE

    我目前正在尝试为学校编写一个程序 以便加密和解密输入的消息 我需要加密或解密的消息仅在字母表中 没有其他符号或密钥 例如 使用消息车加密输入的偏移量为 5 我希望它输出 afs 有人可以帮忙吗 这是我目前的代码 def find offse
  • 使用按键重新排列字符串

    我想使用Pythonrandomly根据给定的键重新排列字符串的各个部分 我还想用相同的密钥恢复原始字符串 def rearrange key data pass def restore key rearranged data pass 效
  • Silverlight:加密Web服务的用户名和密码

    加密不是我的强项 我正在 Silverlight 3 中编写一个应用程序 它与 Web 服务通信以对用户进行身份验证 Web 服务不一定在 SSL 下托管 我正在尝试找到一种在传递用户名和密码之前对其进行可逆加密的方法 该方法不依赖于将密钥
  • 可序列化对象的 ArrayList 的加密保存和解密加载

    我在 SD 卡中保存并加载一个文件 其中包含ArrayList使用这两种方法的可序列化对象 保存方法 public static void saveUserList ArrayList
  • 将带有 md5 消息摘要和 DESede/CBC/PKCS5Padding 的 3DES 加密的 java 代码转换为 python

    我有这个工作java代码 它使用3DES加密对密码进行加密 import java security MessageDigest import java util Arrays import java util Base64 import
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 从 DER 格式的字符串 base64 编码创建 PrivateKey 和 PublicKey

    我的私钥和公钥位于 base64 的字符串中 使用 ANS1 DER 进行编码 我尝试创建 java 的实例PrivateKey and PublicKey byte llave2 DatatypeConverter parseBase64
  • MVC中如何对数据进行加密和解密?

    In my MVC应用我想要encrypt and decrypt数据从视图到控制器的数据传输 如何执行此操作MVC 4 using Razor 您不需要加密从控制器到视图的数据 因为视图渲染发生在控制器正在操作的同一台计算机中 如果您想加
  • TripleDES 密钥大小 - .NET 与 Wikipedia

    根据维基百科 http en wikipedia org wiki Triple DES TripleDES 支持 56 112 和 168 位密钥长度 但 System Cryptography TripleDESCryptoServic
  • 在 SQLite 中加密数据

    如何加密我的数据 就我研究的解决方案而言 有两种方法 使用android提供的算法加密数据 我使用android提供的 Cipher 来加密我的数据 但我在检索大量记录的数据时遇到问题 导致应用程序的性能显着降低 我对整个数据库进行了编码
  • Crypto-Js 与 mcrypt 不同的输出取决于要加密的数据

    我的问题现在与此相关Crypto Js 与 mcrypt 的输出不同 https stackoverflow com questions 24388677 crypto js different output from mcrypt 这就是
  • 如何从 AES 加密字符串添加/删除 PKCS7 填充?

    我正在尝试使用 128 位 AES 加密 ECB 来加密 解密字符串 我想知道如何添加 删除 PKCS7 填充 看起来 Mcrypt 扩展可以处理加密 解密 但必须手动添加 删除填充 有任何想法吗 让我们来看看 RFC 5652 加密消息语
  • 恢复 SQL Server 数据库 - 主密钥未打开

    我必须制作远程 SQL Server 数据库的本地副本 我通过使用 Management Studio 中的 任务 gt 备份 来完成此操作 然后 我在本地恢复了备份 该备份似乎包含了所有内容 表 用户 对称密钥和证书 当我尝试执行需要打开
  • 计算 RSA 128 位密钥长度需要多长时间? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在网上做了一些研究 似乎表明 RSA 加密的推荐密钥长度是 1024 位 但是我有一个问题 对于今天使用的普通计算机来说 计算 128 位 RSA
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 如何使用 JNDI 和 Digest-MD5 对 LDAP 进行身份验证

    我正在尝试使用 DIGEST MD5 加密对 LDAP 服务器进行身份验证 使用简单加密时 它工作得很好 但由于显而易见的原因 我无法通过网络以纯文本形式发送密码 奇怪的是 在使用 Softerra LDAP 浏览器时 我可以使用 Dige
  • 在 PHP 中使用 phpseclib 时出现 RSA 问题

    我正在尝试在 phpseclib 中使用 RSA 实现 我认为在函数中执行一次代码并重新使用该函数会更容易 当我尝试向代码发送短信时 我收到一条错误消息 提示 解密错误 测试还让我意识到每次代码运行时密文都是不同的 所以我显然在那里做错了什

随机推荐

  • 当我在 Java 中输入 IP 时无法连接到我的服务器

    好的 我正在尝试学习 Java 客户端 服务器的内容 并且正在浏览教程代码 如下所示 当我将 localhost 更改为我的 IP 时 它会停止工作 请帮忙 编辑 127 0 0 1 似乎也可以工作 但不是我的真实IP Copyright
  • 实体框架代理创建

    我们可以通过使用来停止在上下文构造函数中创建代理 this Configuration ProxyCreationEnabled false 在 EF 4 1 中创建代理有哪些优点和缺点 代理对于两个功能是必需的 延迟加载 导航属性在第一次
  • 使用 jQuery 的 ajax 方法以 blob 形式检索图像

    我最近问了另一个 相关 问题 这导致了这个后续问题 提交数据而不是输入表单的文件 https stackoverflow com questions 17643142 submitting data instead of a file fo
  • Twitter 引导工具提示不适用于全日历中的事件

    我想显示有关事件的引导工具提示亚当 肖的完整日历 http fullcalendar io 我尝试了这段代码 eventMouseover function event jsEvent this tooltip this css rel t
  • 在 swift 中从本地视频创建缩略图

    如何从本地视频文件快速创建缩略图 例如 如果视频文件路径位于此处 file Users Dev Library Developer CoreSimulator Devices F33222DF D8F0 448B A127 C5B03C64
  • 访问 TypeScript 中默认无名类中的静态属性

    如果我定义一个这样的类 在一个名为 MyClass ts 的文件中 export default class static someProperty 1 someMethod var a someProperty 如何访问 someProp
  • 如何使用本地 nuget 包源进行 Dockerfile dotnet 恢复 [重复]

    这个问题在这里已经有答案了 我正在尝试使用本地 nuget 包进行 dotnet 恢复 我尝试按照本教程进行操作 无需互联网即可恢复 dotnet https blog bigfont ca dotnet restore without a
  • JS - 如何将图像对象变成灰度并显示它

    基本上 当单击按钮时 它会告诉移动设备转到相机 一旦相机拍照 它就会给我图像数据 它被称为数据 URL 吗 这是我处理它的代码 var imagesrc data image jpeg base64 imageData var myimag
  • 从 node.js 创建对 AWS ES 实例的有效签名请求

    我试图找到一个示例 说明如何连接到 Node js 中的 AWS ES 实例 然后通过一个简单的请求访问 ES 集群 我正在尝试使用elasticsearch节点包 https www npmjs com package elasticse
  • 在 Objective-C 中,逗号用作语句分隔符时有什么作用?

    我正在查看第三方的一些源代码 并且反复看到对我来说新的语法 基本上他们用逗号而不是分号分隔语句 它可以编译并运行 但我不明白它在做什么 看起来是这样 if url url release url nil 有时他们也会在不使用 if 的情况下
  • 将存储过程的结果加上额外的列插入表中

    如何在其中插入更多列dbFileListOnly表以及 EXEC 查询 INSERT INTO admindb dbfilelistonly path col1 col2 path EXEC RESTORE FILELISTONLY FRO
  • 如何加载Jquery Tiny滚动条

    所以我想自定义一个滚动条 我发现了一个很小的滚动条 这是一个jquery插件 http baijs nl tinyscrollbar http baijs nl tinyscrollbar 问题是 无论如何我都无法让它工作 我将 Jquer
  • javascript 加壳器与压缩器

    我想知道加壳器与压缩器的区别 优点是什么 即您应该在网络应用程序中部署压缩版本还是压缩版本 示例代码 var layout NAVVISIBLE 1 Init function this Resize Dimensions function
  • 具有多个 sqlite 文件的核心数据

    如何将 Core Data 与多个 SQLite 文件一起使用 每个文件都包含相同的结构 但数据是从不同的位置检索的 我希望能够在运行时根据应用程序设置在这些 sqlite 文件之间切换 当然 只需指向持久存储协调器 NSPersisten
  • 如何在Android中显示进度对话框?

    我想展示ProgressDialog当我单击 登录 按钮时 需要一些时间才能移动到另一个页面 我怎样才能做到这一点 ProgressDialog pd new ProgressDialog yourActivity this pd setM
  • 如何在R中绘制仪表图表?

    如何在 R 中绘制以下图 Red 30 Yellow 40 Green 30 Needle at 52 所以这里有一个完整的ggplot解决方案 注意 从原始帖子中编辑 在仪表中断处添加数字指示器和标签 这似乎是OP在评论中所要求的 如果不
  • Compose 扩展抛出错误:找不到 V3 代理

    我是在 Teams 中创建 Compose 扩展的新手 当我将其添加到我的 Teams 时遇到问题 所有配置均已就位 从注册机器人到将其托管为 Azure 上的机器人服务 再到处理代码中的撰写扩展查询 我已在清单中共享了机器人 ID 并为机
  • hive 从两个数组创建映射或键/值对

    我有两个具有相同数量值的数组 它们映射为 1 1 我需要从这两个数组创建一个键 值对或映射 键 值 任何想法或提示都会有帮助 当前表结构 USA WEST NUMBER Street City 135 Pacific Irvine USA
  • R data.table fread 使用不带标题的命名 colClasses(例如没有 col.names?)

    更新 2016 年 6 月 col names 已添加到 data table 1 9 6 所以问题已经结束 每个人都非常高兴 我想我现在可以将所有 read csv 调用转换为 fread 调用 而不必担心破坏 原问题 使用数据表1 9
  • 如何将pgp私钥传输到另一台计算机? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 I read 本文 http www robertsosinski com 2008 02 18 working with pgp and mac o