# Mina--生成密钥对

By [chezhe](https://paragraph.com/@v2y3x4) · 2021-11-11

---

为了在主网上创建密钥对或完整地使用 Mina 测试网络，第一步是生成密钥对——它包含了一个公钥和一个私钥。目前有两个支持生成密钥对的工具mina-generate-keypair和ledger-app-mina。

我们也有一个工具，用于验证你的私钥是否正确创建。

> 注意：你可能想要生成一个以上的密钥对。例如，如果你想最安全地运行一个区块生产者，你会想要一个热钱包/冷钱包区块生产设置。

方法
--

### mina-generate-keypair

我们已经创建了一个简单的命令行工具，叫做`mina-generate-keypair`。这是最简单的方法，可以在下面找到说明。

### Ledger 硬件钱包

你可以使用你的 [Ledger Nano S](https://www.ledger.com/) 硬件钱包来安全地存储你的Mina私钥。我们正在进行独立的安全审计，目前没有发现任何漏洞，开发工作已接近完成。请参阅我们的 [ledger-app-mina](https://docs.minaprotocol.com/en/advanced/ledger-app-mina) 文档，开始使用这个工具。

### 客户端 SDK

我们还创建了一个客户端SDK，能够生成密钥对并签署交易。请注意，这种方法是不可取的，只有经验丰富的安全专家才可以使用。请使用我们的`mina-generate-keypair`工具来创建密钥对。更多信息请参见我们的客户端 SDK 文档。

> 警告：永远不要泄露你的私钥，并确保它们被安全储存。如果你丢失了你的私钥，或者如果一个恶意的行为者获得了你的私钥，你将失去对你的账户的访问，并将失去你的账户资金。始终提供你的公钥来代替。米娜永远不会向你要你的私钥。

使用 mina-generate-keypair
------------------------

为了简化创建密钥对的过程，我们已经创建了一个简单的命令行工具，称为 `mina-generate-keypair`。`mina-generate-keypair` 易于使用，可以创建你自己的密钥对，开始参与 Mina 网络。请看下面，看看如何在你的本地系统上安装和使用。

安装
--

我们支持几个不同的操作系统的 `mina-generate-keypair` 工具。按照下面的说明，将该工具安装到你的系统上。

### macOS

如果你使用的是 macOS，请安装 Docker 并按照下面基于 docker 的说明进行操作。

### Ubuntu 18.04 / Debian 9

添加 Mina 仓库后，你可以简单地运行以下命令。

    echo "deb [trusted=yes] http://packages.o1test.net stretch stable" | sudo tee /etc/apt/sources.list.d/mina.list
    sudo apt-get update
    sudo apt-get install mina-generate-keypair=1.2.0-fe51f1e
    

通过运行 `mina-generate-keypair -version`，检查 `keygen` 工具是否正确安装。输出应该是 `Commit fe51f1ef5cfbcb4d5f559af39080963cf28ff1af on branch master` 。

### Windows / 其他操作系统

安装 Docker 并按照下面步骤3b.中基于 Docker 的说明进行操作。

使用
--

创建一个密钥对很简单，只需几个简短的步骤即可完成。

1.  首先，确保你的系统上有一个可以存放钥匙文件的文件夹。我们建议使用 `~/keys` 文件夹。
    

    mkdir ~/keys
    

2\. 接下来，确保正确设置这个文件夹的权限，这可以防止不需要的进程访问这些文件。

    chmod 700 ~/keys
    

3\. 使用 Debian/Ubuntu 的步骤 3a 中的说明，或 Docker 的步骤 3b，生成一个密钥

> 警告：请确保为以下命令设置一个新的、安全的密码。Mina 永远不会向你要这个密码，你也不应该与任何人分享它。

3a. 在 Ubuntu/Debian 中。使用 `mina-generate-keypair` 命令生成你的密钥。当出现提示时，输入你打算用来保护这个密钥的密码。如果设置了，该工具将使用 `CODA_PRIVKEY_PASS` 环境变量中的密码，而不是提示你。请不要忘记这个密码。

    mina-generate-keypair --privkey-path ~/keys/my-wallet
    

3b. 在Windows/MacOS/Linux的Docker中。使用 `minaprotocol/generate-keypair` docker镜像生成你的密钥。当出现提示时，输入你打算用来保护该密钥的密码。请不要忘记这个密码。

    cd ~
    docker run  --interactive --tty --rm --volume $(pwd)/keys:/keys minaprotocol/mina-generate-keypair:1.2.0-fe51f1e --privkey-path /keys/my-wallet
    

这将在你的系统上创建两个文件：`~/keys/my-wallet`，其中包含加密的私钥；`~/keys/my-wallet.pub`，其中包含纯文本的公钥。请将你使用的私钥文件和密码保存在一个安全的地方，如密码管理器。 4. 最后，确保正确设置私人密钥文件的权限，这可以防止不需要的进程访问它。

    chmod 600 ~/keys/my-wallet
    

验证你的私钥
------

现在你已经创建了你的密钥 -- 你要验证它是否有效。只要验证你能签署一个交易就足够了。你可以使用 `mina-validate-keypair` 工具来验证这一点。

在 Linux 上执行：

    mina-validate-keypair --privkey-path <path-to-the-private-key-file>
    

如果你运行 Docker：

    docker run --interactive --tty --rm --volume $(pwd)/keys:/keys minaprotocol/mina-generate-keypair:1.2.0-fe51f1e --privkey-path /keys/my-wallet
    

下一步
---

现在我们已经创建了我们的密钥对，我们终于可以[连接到网络](https://docs.minaprotocol.com/en/using-mina/connecting)或分享你的公钥了。

---

*Originally published on [chezhe](https://paragraph.com/@v2y3x4/mina-2)*
