本地配置多个git账户(公司、GitHub)
在公司探索新知識(摸魚)時,我們一般會需要在GitHub上維護維護自己的小倉庫。
這樣如果使用原來的配置就會發生Push代碼時Permission Denied了。
所以我們有以下幾步:
公司電腦是Mac,所以以下內容均為Mac上的操作,但不同操作系統其實大同小異。
不同倉庫配置不同的提交用戶信息
我們在公司電腦上主要還是提交公司的代碼,所以為了方便,git的global用戶信息可以設置為公司要求的name和email。
在自己的倉庫下配置git賬號信息可以覆蓋掉全局的。
生成不同的ssh密鑰
# -C后接郵箱地址,例:-C "aaa@qq.com" # -f后接生成密鑰的路徑(同時包含了密鑰的文件名),這樣就不用在生成時單獨輸入密鑰文件名 # 不同的密鑰文件名要區分不同文件名,以下是GitHub的ssh密鑰示例 ssh-keygen -t rsa -C "<GitHub郵箱>" -f ~/.ssh/id_rsa_github# 這之后直接回車就行了進入ssh文件夾,可以看到我本地生成了兩個,一個是默認名稱id_rsa,一個是GitHub的id_rsa_github,分別還有它們的公鑰。
創建ssh配置文件
在上圖可以看到我的ssh文件夾下有config文件,如果你從來沒有配置過,那你的本地可能是沒有這個文件的。
vim ~/.ssh/config# vim新手教程 # 按i鍵進入插入模式(進入插入模式才能輸入內容),左下角有INSERT字樣 # 輸入完畢后按ESC突出插入模式,左下INSERT消失 # 按 :(英文) 鍵進入命令模式,光標移到了窗口最底下 # 輸入wq保存并退出(w:保存,q:退出,可單獨使用)# config文件插入以下內容,多個賬號可以配置多組,中間建議間隔一行,這里只實例GitHub Host git@github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github# Host 為使用ssh時的別名,在之后配置倉庫遠程地址時用到 # HostName 為遠程倉庫的域名 # User 一般為git,了解到好像填其他的也沒太大影響 # IdentityFile 為生成的對應的ssh密鑰文件在遠程倉庫添加ssh公鑰
GitHub官方教程
# 將公鑰打印到命令行中方便復制 cat ~/.ssh/id_rsa_github.pub測試ssh鏈接
ssh -T git@github.com # 這里-T后面接上的就是之前config文件中的Host別名# 如果看到以下內容,說明你已經成功了 # Hi <你的GitHub賬戶名>! You've successfully authenticated, but GitHub does not provide shell access.配置倉庫遠程地址
# 原來配置遠程倉庫地址時我們使用https地址 git remote add origin https://github.com/<你的GitHub賬戶名稱>/<你的倉庫名稱>.git# 現在我們使用config文件中的Host別名 git remote add origin git@github.com:<你的GitHub賬戶名稱>/<你的倉庫名稱>.git使你的ssh密鑰持續生效
但我之所以寫下這篇文章,就是因為我不是第一次配置了。
為了方便你以后不用再麻煩,請繼續看。
當你重啟一次電腦后,你的ssh密鑰就沒有被托管了,push代碼的時候就會Permission Denied。
當然你可以重復以上步驟解決,但我們希望有更優雅的解決方式。原因在這個文章里說了,感興趣的可以了解一下。
是否必須每次添加ssh-add
我們可以通過ssh-add命令將我們的ssh密鑰重新添加到ssh-agent進行代理托管
ssh-add ~/.ssh/id_rsa_github但是仍然會出現重啟后失效的問題,所以我們可以將這個命令添加到命令行配置文件中。
vim ~/.zshrc# 添加以下內容,亦可添加多個密鑰 # 將GitHub的ssh密鑰添加到ssh-agent ssh-add ~/.ssh/id_rsa_github # 然后保存退出總結
以上是生活随笔為你收集整理的本地配置多个git账户(公司、GitHub)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DDTW 导数动态时间规整算法
- 下一篇: 二重积分问题、计算法则与注意事项汇总