Git 多賬戶配置SSH免密登入

2021-10-04 10:40:21 字數 3580 閱讀 3044

問:為什麼要配置ssh?

答:因為每次同步遠端**都需要輸入密碼,使人低效又煩躁。

另外,github 不配置 ssh ,會有大檔案限制,如果超過一定大小,會出現錯誤error54,就像這樣:

git error: rpc failed; curl 56 libressl ssl_read: ssl_error_syscall, errno 54

所以,不要磨鍊自己的耐心了,也為了方便,麻利地配起來~

命令如下所示:

ssh-keygen -t rsa -c "[email protected]"  // 替換成你自己的郵箱
執行命令時會讓你輸入名稱和密碼,名稱如果不輸入,預設是id_isa。如果只配乙個賬戶,預設即可,如果需要多個git 賬戶都要配置ssh,最好起個名字,建議使用平台名稱,方便區分。

執行成功後果~/.ssh 會生成兩個檔案,分別私鑰(***.pub)和金鑰。下圖有兩對檔案,github/github.pub 是自定義名稱的一對,id_rsa 和 id_rsa.pub 是一對。

這裡需要說明一下,因為預設只讀取id_rsa,為了讓ssh識別新的私鑰,需將其新增到ssh agent中,命令是:

ssh-add
下圖可以明顯看到 id_rsa 預設已經新增,自定義的名稱需要輸入密碼。

這一步需要獲取公鑰的內容,然後貼上到遠端 git ,例如 github 和 gitlab

獲取公鑰內容,命令如下所示:

以 github 為例,新增 ssh 配置的入口在 setting-ssh and gpg keys ,將上一步的內容貼上,並自定義名稱即可。按照我的經驗,如果有多台電腦,名稱最好標識下電腦,方便區分,例如xx_work,***_personal 等等

命令為:

問:為什麼要有多賬戶配置?

答:因為在實際的工作學習場景中,公司的遠端**倉庫大多是自己搭建的,例如我司就是gitlab,需要配置乙個ssh,個人學習**倉庫在github,也要配置乙個ssh,所以必須要配置倆了。

配置步驟如下:

第一步:生成ssh 金鑰時,多對金鑰,要取不同的名字,用來區分(例如我比較喜歡用平台命名,命名為github 和 gitlab)

第二步:遠端git 配置 ssh 公鑰,各自配置各自平台。

第三步:配置ssh config 檔案。這個下面詳細講。

第四步:將兩個金鑰加入鑰匙串,然後分別測試是否配置成功

基本步驟和單賬戶基本一致,關鍵步驟在配置 ssh config 檔案,下面針對該點展開。

問:ssh config 是什麼?

答:ssh config 是 linux 系統下針對 ssh 客戶端的乙個引數配置方案,可以將一些關於 ssh 命令的引數放到配置檔案中去,執行 ssh 命令的時候從檔案中讀取,簡化命令列的操作

ssh 的配置檔案有兩個:

我們配置的時候,只需要關注使用者配置檔案~/.ssh/config即可。

進入~/.ssh/目錄,檢視是否有 config 檔案,有可直接修改,沒有就手動建立。結合第一步建立的兩個金鑰,現在~/.ssh/ 在的檔案組成為:

config 中的檔案配置如下內容:

# github

host github.com

hostname github.com

user your_login_name

identityfile ~/.ssh/github

# gitlab

host gitlab.***.com

hostname gitlab.***.com

user your_login_name

identityfile ~/.ssh/gitlab

配置項說明:

user:使用者名稱,可以自定義,提交的時候使用者名稱會採用該使用者名稱

identityfile:指定本次連線使用的金鑰檔案

配置完成後,使用以下命令測試連線即可。

# 新增金鑰到本地鑰匙串

ssh-add # 測試連線

ssh -t [email protected]

使用過程中,發現重啟電腦後,竟然需要重新輸入密碼,小朋友有很多小問號,why?

我看了下自己的電腦配置已經是 10.14.5 了,原來如此,這樣就破案了。

官網也針對修改,提供了兩個配置項addkeystoagentusekeychain,可以在 config 檔案中配置為 yes:

# github

host github.com

hostname github.com

user your_login_name

identityfile ~/.ssh/github

# 載入到 ssh-agent

addkeystoagent yes

# 新增到使用者鑰匙串

usekeychain yes

# gitlab

host gitlab.***.com

hostname gitlab.***.com

user your_login_name

identityfile ~/.ssh/gitlab

# 載入到 ssh-agent

addkeystoagent yes

# 新增到使用者鑰匙串

usekeychain yes

git常見錯誤整理

ssh config 那些你所知道和不知道的事

mac os sierra ssh金鑰在重啟後丟失的問題

SSH 免密登入配置

有兩種方式 私鑰登入和公鑰登入 私鑰登入 1 在主機a上生成秘鑰對 ssh keygen t rsa c 注釋文字 將生成的秘鑰對中的私鑰id rsa 複製到將要登入a機器的主機檔案中一班使用字尾.pem,例如 cat id rsa my.pem 2 將上述私鑰檔案交給授權登入的主機,注意,私鑰很重...

SSH免密登入配置

進入到hadoop使用者家目錄 cd 檢視當前目錄.ssh 隱藏檔案 ls al 進入ssh cd ssh 執行命令生成私鑰id rsa 公鑰 id rsa.pub ssh keygen t rsa 將公鑰內容放入hadoop1的authorized keys 檔案 ssh copy id hado...

SSH 免密登入配置

當你剛擁有乙個伺服器後,首先需要登入伺服器。本節主要聊一聊伺服器ssh登入配置。ssh p port root 12.234.567.789 p port 監聽的埠,如果不指定預設值為 22 vim ssh config 修改 ssh 配置檔案 ssh config host beijing hos...