翻譯:瘋狂的技術宅
英文標題: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
命令相關的資源:
關注微信公衆號:充實的腦洞, 一個技術宅的保留地 | |
---|---|
![]() |