翻译:疯狂的技术宅
英文标题:Creating SSH Keys on macOS Sierra
英文原文:https://www.fullstackpython.c...
本文首发微信公众号:充实的脑洞html
把程序部署到服务器一般须要用到 SSH 密钥。SSH 密钥由公钥和私钥文件两部分组成。在同步远程 Git 存储库、链接到远程服务器、经过配置管理工具 (如 Ansible) 自动化应用程序的部署时, 均可以使用私钥来进行身份验证。下面让咱们学习如何在 macOS Sierra 上生成 SSH 密钥对。python
首先在 macOS 上打开一个终端窗口。git
ssh-keygen
命令提供了一个交互式命令行界面, 用于生成公钥和私钥。运行 ssh-keygen
命令时要使用下面的-t
和-b
参数, 以确保可以获得 4096 位的 RSA 密钥。请注意, 必须在 macOS 中使用 2048 位或更强的密钥, 不然系统将会拒绝你使用它链接到服务器。github
你也能够用-C
指定本身的电子邮件地址 (不然将从当前的 macOS 账户中生成一个):macos
ssh-keygen -t rsa -b 4096 -C my.email.address@company.com
接下来看到的第一个提示是询问保存密钥的位置。实际上将会生成两个文件: 公钥和私钥。segmentfault
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”以及一个独特的项目名称。命名是计算机科学的难题之一,因此花点时间来想出一个适合你的命名系统吧!bash
接下来,你将看到一个可选密码的提示:服务器
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
命令相关的资源:
关注微信公众号:充实的脑洞, 一个技术宅的保留地 | |
---|---|
![]() |