【译】在macOS Sierra中创建自己的SSH秘钥对

2017-08-21 10:55:24来源:https://segmentfault.com/a/1190000010740286作者:SegmentFault人点击

分享

翻译:疯狂的技术宅

 

英文标题:Creating SSH Keys on macOS Sierra

 

英文原文: https://www.fullstackpython.c...

 

本文首发微信公众号:充实的脑洞

 

把程序部署到服务器通常需要用到 SSH 密钥。SSH 密钥由公钥和私钥文件两部分组成。在同步远程 Git 存储库、连接到远程服务器、通过配置管理工具 (如 Ansible) 自动化应用程序的部署时, 都可以使用私钥来进行身份验证。下面让我们学习如何在 macOS Sierra 上生成 SSH 密钥对。


生成新密钥

首先在 macOS 上打开一个终端窗口。

 

 

ssh-keygen 命令提供了一个交互式命令行界面, 用于生成公钥和私钥。运行 ssh-keygen 命令时要使用下面的 -t 和 -b 参数, 以确保能够得到 4096 位的 RSA 密钥。请注意, 必须在 macOS 中使用 2048 位或更强的密钥, 否则系统将会拒绝你使用它连接到服务器。

 

你也可以用 -C 指定自己的电子邮件地址 (否则将从当前的 macOS 帐户中生成一个):


ssh-keygen -t rsa -b 4096 -C my.email.address@company.com

接下来看到的第一个提示是询问保存密钥的位置。实际上将会生成两个文件: 公钥和私钥。


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

提示中 id_rsa 指的是默认的私钥文件名,不管输入什么,都会同时生成与私钥名称相同的,以.pub为后缀的的公钥文件。

 

如果你之前已经有了一对密钥文件,那么应该取一个新的文件名。通常我会使用很多SSH密钥,所以我把它们命名为“test-deploy”,“prod-deploy”,“ci-server”以及一个独特的项目名称。命名是计算机科学的难题之一,所以花点时间来想出一个适合你的命名系统吧!

 

接下来,你将看到一个可选密码的提示:


Enter passphrase (empty for no passphrase):

是否需要这个密码取决于你讲如何使用密钥。当你使用SSH密钥时,系统会向你询问这个密码,尽管MacOS可以使用钥匙串来存储这个密码,但是如果你想使用Jenkins这样的持续集成服务器进行自动部署的话,那么就不要设定这个密码。

 

请注意,如果你忘记了这个密码,是没有办法找回来的。要保证这个密码的安全性,否则一旦丢失或泄露,你就要重新生成密钥对。

 

输入密码两次(或者直接回车不设定密码),你将看到下面的输出:


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 matthew.makai@gmail.com
The key's randomart image is:
+---[RSA 4096]----+
|..+o++**@|
| . +.o*O.@=|
|. oo*=B.*|
| . .=o=+ |
|. S E. +oo |
| . ..=.|
|. o|
| |
| |
+----[SHA256]-----+

你的SSH密钥已经生成并且可使用了!


接下来做什么?

现在你已经有了公钥和私钥,接下来你就可以对服务器进行免密登陆或进行自动化部署了。附上两个 ssh-keygen 命令相关的资源:

 

macOS Sierra 10.12 SSH Keys

 

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

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台