Mac上Git多倉庫管理(GitHub上有多個賬號多個倉庫如何配置ssh)


 Git多倉庫管理

創建新的SSH密鑰,並添加到ssh-agent

創建密鑰

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
 

輸入保存密鑰的絕對路徑和文件名,如/Users/Steve/.ssh/new_id_rsa

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
 

兩次輸入確認密鑰的密碼

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
 

把密鑰添加到ssh-agent

把ssh-agent在后台啟動

eval "$(ssh-agent -s)"
 

一個賬號不用配置config 

配置~/.ssh/config文件,如果沒有該文件,通過touch config命令創建。注意HostName github.com

Host github.com
  HostName github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
 

把私鑰添加到ssh-agent並存入keychain,執行命令會要求你輸入密碼

ssh-add -K ~/.ssh/id_rsa
 

添加SSH公鑰到你的GitHub賬戶

把公鑰復制到剪貼板

pbcopy < ~/.ssh/id_rsa.pub
 

進入Github賬戶找到Settings,點擊進入后選擇SSH and GPG keys,點擊New SSH key。在Title框內填入標題,在``框粘貼剛才復制的公鑰。最后點擊Add SSH key

測試命令

ssh -vT git@github.com
 

如果有兩個GitHub賬戶,如何配置SSH密鑰並使用?

假設現在有兩個GitHub賬戶,對應兩個SSH密鑰old_id_rsa和new_id_rsa。如果還沒有密鑰,分別按上面的步驟創建和添加。

修改config文件如下

 

# 配置多個id_rsa  

# github

Host github.com # Host是別名

HostName github.com # HostName是遠程倉庫的域名

IdentityFile ~/.ssh/github_rsa

AddKeysToAgent yes

# PreferredAuthentications publickey

User yourname@gmail.com

 

 

# 公司項目

Host labs.oa.com

HostName labs.oa.com

IdentityFile ~/.ssh/id_rsa

AddKeysToAgent yes

User yourname@qq.com

 

 

# fastlane打包證書

Host app.cert.com

HostName labs.oa.com

IdentityFile ~/.ssh/app_rsa

AddKeysToAgent yes

User yourname@163.com

 

 

# gitlab倉庫備份

Host gitlab.com

HostName gitlab.com

IdentityFile ~/.ssh/gitlab_rsa

AddKeysToAgent yes

User yourname@live.com

 

注意labs.oa.com.app  labs.oa.com.cert 在新版本macOS中添加秘鑰時會全部識別為labs.oa.com,建議讓HostName完全不同

配置完~/.ssh/config后添加秘鑰到ssh-agent中,可以不用再輸入密碼

ps -ef|grep ssh 查找已經啟動的ssh-agent進程,如果進程存在則干掉 kill -9 pid 

刪除~/.ssh/known_hosts文件,rm -rf ~/.ssh/known_hosts

依次測試能否連通,ssh -T 會自動將秘鑰添加到ssh-agent中

ssh -T github.com 

ssh -T gitlab.com

ssh -T labs.oa.com

ssh -T app.cert.com 

 

如果報錯了,可以使用下面命令查看詳細的報錯信息

ssh -vT git@new.github.com
 

使用需要注意,git@后要改為對應賬戶的別名。
 
new_id_rsa密鑰對應的GitHub賬戶上有個倉庫test.git,且你的GitHub用戶名是username,使用下面命令克隆

git clone git@app.cert.com:username/test.git  設置了別名就不能用原來域名labs.oa.com

避免git錯用密鑰,把git全局的用戶名和郵箱刪除

git config --global --unset user.email
git config --global --unset user.name
 

刪除后,以后進入每個倉庫都要指定該倉庫局部的user.mail和user.name。

git config  user.email "you@example.com"
git config  user.name "Your Name"
 

 

還沒完~

如果想要每次啟動電腦都自動啟動ssh-agent,就不用輸入密碼了 

自動操作神器登場~~~~~~

1、新建應用程序

2、選擇 shell 腳本類型

 

3、記得先在控制台執行一下這些腳本,因為需要輸入密碼,否則會報錯

 點擊右上角的運行按鈕執行腳本保證正確性

4、保存為應用程序

5、設置開機啟動運行腳本 

系統-偏好設置-用於與群組,點擊 + 添加應用程序

 

完美~

 

參考

 Connecting to GitHub with SSH
 Generating a new SSH key and adding it to the ssh-agent
 Adding a new SSH key to your GitHub account
 Multiple GitHub Accounts & SSH Config

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM