在 macOS Sierra 上创建 SSH 密钥

部署 Python 应用程序通常需要 SSH 密钥。 SSH 密钥同时具有公钥文件和私钥文件。您可以在同步远程 Gitrepositories 时使用私钥进行身份验证,连接到远程服务器并通过 Ansible 等配置管理工具自动部署应用程序。让我们学习如何在 macOS Sierra 上生成 SSH 密钥对。

生成新密钥

进入“应用程序/实用程序”并打开“终端”,在 macOS 上打开一个新的终端窗口。

新的 macOS 终端窗口。

ssh-keygen 命令提供了一个交互式命令行界面,用于生成公钥和私钥。使用以下 ssh-keygen-t 参数调用 -b 以确保我们获得 4096 位 RSA 密钥。请注意,您必须在 macOS Sierra 中使用 2048 位或更多位的密钥,否则系统将不允许您使用它连接到服务器。

您还可以选择使用 -C 指定您的电子邮件地址(否则将从您当前的 macOS 帐户生成一个):

ssh-keygen -t rsa -b 4096 -C [email protected]

您将看到的第一个提示询问将密钥保存在何处。但是,实际上会生成两个文件:公钥和私钥。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/matt/.ssh/id_rsa):

此提示是指私钥,无论您输入什么,都会为公钥生成第二个文件,该文件具有相同的名称并附加了 .pub

如果您已有密钥,请指定一个新文件名。我使用许多 SSH 密钥,所以我经常将它们命名为“test-deploy”、“prod-deploy”、“ci-server”以及唯一的项目名称。命名是计算机科学中的难题之一,因此请花点时间想出一个适合您的系统!

接下来您将看到输入可选密码的提示:

Enter passphrase (empty for no passphrase):

您是否需要密码短语取决于您将如何使用密钥。每当您使用 SSH 密钥时,系统都会要求您提供密码短语,尽管 macOS 可以在您第一次输入密码短语后将其存储在系统钥匙串中。但是,如果您使用像 Jenkins 这样的持续集成服务器进行自动化部署,那么您将不需要密码。

请注意,如果密码丢失,则无法恢复。保持该密码安全可靠,否则必须生成一个全新的密钥。

输入密码(或直接按 enter 不输入密码)两次。您将看到如下输出:

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/matt/.ssh/deploy_prod.
Your public key has been saved in /Users/matt/.ssh/deploy_prod.pub.
The key fingerprint is:
SHA256:UnRGH/nzYzxUFS9jjd0wOl1ScFGKgW3pU60sSxGnyHo [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|        ..+o++**@|
|       . +.o*[email protected]=|
|        . oo*=B.*|
|       . .  =o=+ |
|      . S E. +oo |
|       . .  .  =.|
|              . o|
|                 |
|                 |
+----[SHA256]-----+

您的 SSH 密钥可以使用了!

现在怎么办?

既然您已经有了公钥和私钥,我建议您构建和部署一些 Python 网络应用程序,例如:

  • 构建您的第一个 Slack 机器人
  • 通过 REST API 发送图片或视频消息
  • 使用 Bottle 网络框架拨打外拨电话

额外的ssh-keygen命令资源:

  • macOS Sierra 上的 SSH 密钥
  • 生成新的 SSH 密钥并将其添加到 ssh-agent

有问题吗?通过 Twitter@fullstackpython 或@mattmakai 与我联系。我也在 GitHub 上,用户名是 mattmakai。

看到这篇文章有什么问题了吗?在 GitHub 上创建此页面的源代码并提交拉取请求。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏