在 Ubuntu Linux 16.04 LTS 上创建 SSH 密钥

当您使用 Git、连接到远程服务器和自动化部署时,SSH 密钥是 Python 开发的必需品。让我们来看看如何在 Ubuntu Linux 上生成 SSHkey 对,它在一对中包含公钥和私钥。

生成公钥和私钥

在 Ubuntu 中打开一个新的终端窗口,如下面的屏幕截图所示。

ssh-keygen 命令提供了一个交互式命令行界面,用于生成公钥和私钥。使用以下 ssh-keygen-t 参数调用 -b 以确保我们获得 4096 位 RSA 密钥。您也可以选择使用 -C 指定您的电子邮件地址(否则将从您当前的 Linux 帐户生成一个):

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

(注意:-o 选项是在 2014 年引入的;如果您执行此命令失败,只需删除 -o 选项即可)

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

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

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

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

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

Enter passphrase (empty for no passphrase):

您是否需要密码取决于您将如何使用密钥。每当您使用 SSH 密钥时,系统都会要求您提供密码,因此它更安全。但是,如果您使用持续集成服务器(如 Jenkins)进行自动化部署那么您将不需要密码。

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

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

Your identification has been saved in /home/matt/.ssh/prod_deploy.
Your public key has been saved in /home/matt/.ssh/prod_deploy.pub.
The key fingerprint is:
SHA256:xoCWgk40XfM5mruZQNCVoBKXZ4d0gn09ivVENacb7xw [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|.oo*==oo..o .    |
|.+*.*** =  +     |
|o+.++=.B .o      |
|+ .o. +oo  +     |
| . . o  S . E    |
|  .   ..   o .   |
|   . .      o    |
|    . +          |
|     +           |
+----[SHA256]-----+

您的 SSH 密钥现已生成并可以使用了!

现在怎么办?

现在您已经有了公钥和私钥,我建议您使用以下教程之一设置 Python 开发环境,以便您可以开始编码:

  • 在 Ubuntu 16.04 LTS 上设置 Python 3、Django 和 Gunicorn
  • 如何在 Ubuntu 16.04 上将 Redis 与 Python 3 和 redis-py 结合使用
  • 在 Ubuntu 16.04 上设置 PostgreSQL Ubuntu 16.04 上的 Python 3 和 psycopg

额外的ssh-keygen命令资源:

  • ubuntu manuals ssh-keygen
  • 生成新的 SSH 密钥并将其添加到 ssh-agent

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

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

赞(0) 打赏

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

支付宝扫一扫打赏

微信扫一扫打赏