【譯】在macOS Sierra中建立本身的SSH祕鑰對

翻譯:瘋狂的技術宅
英文標題: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 命令相關的資源:

關注微信公衆號:充實的腦洞, 一個技術宅的保留地
相關文章
相關標籤/搜索