日常使用 ssh 進行免密登錄的時候璃俗,經(jīng)常會遇到這樣的問題制轰。比如 ~/.ssh/ 目錄下已經(jīng)存在一個 id_rsa 私鑰在進行其他業(yè)務的免密登錄厅缺,現(xiàn)在如果需要再配一個 github 的免密登錄违寞,怎么辦呢辱士?私鑰的名字又要固定為 id_rsa,總不可能在兩個私鑰間來回改名字吧
使用配置文件進行多個私鑰的管理
我們可以在 ~/.ssh 目錄下創(chuàng)建一個 config 文件徐鹤,文件內(nèi)容大致如下
Host github.com
IdentityFile ~/.ssh/id_rsa.github
User lionsu
每一項的作用留到后面再講,先把 ssh 的密鑰配完
使用命令 ssh-keygen 生成密鑰對
//指定生成密鑰的文件名 免得覆蓋現(xiàn)有的 id_rsa 文件
//這條命令也可以用于 Windows
$ssh-keygen -t rsa -f ~/.ssh/id_rsa.github
執(zhí)行完畢會在 ~/.ssh/ 目錄下生成 id_rsa.github 和 id_rsa.github.pub 兩個文件邀层,id_rsa.github 是私鑰返敬,需要放在本地,id_rsa.github.pub 是公鑰寥院,需要配置到 github 的用戶設置頁面上
打開github配置頁面
登錄github之后劲赠,訪問 https://github.com/settings/keys 進入設置頁,SSH and GPG keys
這一欄是配置公鑰的地方
github配置公鑰.png
Title 先寫一個方便記憶標識的名字(比如homePC)
然后用文本編輯器(記事本就可以)打開 id_rsa.github.pub秸谢,把內(nèi)容全部復制到 key 這一欄凛澎,一定要帶上文本開頭的
ssh-rsa
, 否則 github 頁面會提示公鑰不合法,最后面的用戶名可以帶上也可以去掉
回到開頭的config文件
Host github.com
IdentityFile ~/.ssh/id_rsa.github
User lionsu
- Host 是需要免密登錄的域名估蹄,如果是服務器的話塑煎,便是ip地址(這一點沒有測試過),不過這里因為是github網(wǎng)站臭蚁,所以這里Host一定要填 github.com最铁,個人猜測應該是跟 .git/config 這個配置文件里面的git url相關
- IdentityFile 本地私鑰的路徑,一定要準確
- User 如果有多個 github 帳戶需要免密登錄垮兑,則用這一項進行標識(不一定要跟github站點上的用戶名一致冷尉,有關聯(lián)性方便標識就行)