我們可能會需要在一臺電腦上以不同的github賬戶去使用git,這時就需要去解決如何管理本機上的多個ssh key的問題了。
1.進入到~/.ssh ??
? ? 打開你的git bash , 輸入命令: cd ?~/.ssh?
2.生成 新的 ssh密鑰
?? ?如果我們電腦上已經存在了一個ssh key,那么我們需要在我們電腦上生成第二個你想在本電腦上使用的id_rsa,
? ?使用命令:?ssh-keygen -t rsa -C "你的github注冊郵箱地址"。
???Enter file in which to save the key (/c/Users/Y700/.ssh/id_rsa): 提示你填寫你的系統盤下用戶目錄安放ssh密鑰的目錄,請使用自己電腦上相對應的目錄,?此處默認會存放在c盤的用戶名下的.ssh文件夾下(即你第一個github用戶ssh key存放的目錄).這里我填的是“id_rsa_me”,重新命名了ssh key防止默認與已有的ssh key重復。
? ? (附: 如果是需要刪除已有的密鑰,則此處不填寫,直接選擇覆蓋原有的密鑰,即刪除)
Enter passphrase (empty for no passphrase): ?提示你輸入提交項目時輸入的驗證密碼,這是為了防止別人隨便在你的項目上push東西;
如果你不想每次操作都輸入密碼,可以不填.
3.添加新 ssh Key
默認SSH只會讀取id_rsa,所以為了讓SSH識別新的私鑰,需要將其添加到SSH agent
使用命令:$ ssh-add ~/.ssh/id_rsa_me?
4.配置config文件
ls命令查看.ssh文件中是否存在config文件
如果已存在則直接編輯config文件,命令:vim config?#這是linux的命令,進入了vim界面后按a或i或A或I進入編輯模式,編輯完成后按esc鍵輸入:wq?保存文件退出
如果不存在則需要創建config文件,命令:touch config,再對config文件進行編輯
對config文件進行配置填寫:
#Defaultgithubuser(DodoMonster@email.com)-這其實是注釋
Hostdodo#把默認的常用的githubHost設為github.com較好
HostNamegithub.com
PreferredAuthenticationspublickey
IdentityFile~/.ssh/id_rsa_me
#seconduser(monster@qq.com)
Hostmonster
HostNamegithub.com
PreferredAuthenticationspublickey
IdentityFile~/.ssh/id_rsa
? 其中Host 后的名字可以隨意方便自己記憶,但HostName必須為github.com。
? ? host monster 的設置中,IdentityFile~/.ssh/id_rsa的id_rsa是你存放公鑰的文件,一般情況不更改,
測試是否配置成功:
使用命令:
ssh-T git@github.com
ssh -T git@ydy
出現如圖的歡迎語則為配置成功。
注意:配置完成后,在連接Host不是github.com的github倉庫時,遠程庫的地址要對應地做一些修改,比如現在添加monster帳號下的一個倉庫orderTicket,則需要使用如下命令這樣添加:
git remoteaddtestgit@dodo:monster/orderTicket.git
而并非原來的git@github.com:monster/orderTicket.git
這樣每次連接都會使用id_rsa與服務器進行連接。
配置至此,大功告成!
另外注意:github根據配置文件的user.email來獲取github帳號顯示author信息,所以對于多帳號用戶一定要記得將user.email改為相應的email(monster@mail.com)。
遇到問題,看這里:
1.如何查看本地已經存在的密鑰cat id_rsa.pub
2.執行ssh-keygen -t rsa -C "你的github注冊郵箱地址"?出現 too many arguments 的錯誤
問題解決: ? 可能是'-' 出錯, 可以直接復制我的命令 :ssh-keygen -t rsa -C "你的github注冊郵箱地址" (換成你自己的郵箱地址)
3.出現 permission denied 的錯誤
問題解決: ?登錄github賬戶, 找到對應的遠程倉庫, 如我的是yidongying/yidongying.github.io(這個是設置github pages的倉庫) ,將id_rsa里面的公鑰添加到這個倉庫中;
遠程倉庫配置公鑰就不贅述了,不會的可以參考https://www.cnblogs.com/kobe2408/p/5236360.html
?如果要查看公鑰 ?可以使用命令 : cat ?id_rsa(你的公鑰文件)?
需要注意的是.你在遠程倉庫設置的公鑰必須是你在vim config這步操作中hostmonster設置的公鑰文件.
參考資源:
? ?1.?https://segmentfault.com/a/1190000005607713?(創建多個密鑰)
? ? 2.http://lambda.hk/git/2015/03/18/Git-Change-Account/??(切換本地賬戶)
https://blog.csdn.net/ha000/article/details/53422126(多個git賬戶的切換)
??https://blog.csdn.net/qq_34902522/article/details/78498664?(刪除密鑰) ? ?
https://blog.csdn.net/qq_34902522/article/details/78498664?(刪除密鑰) ? ?
https://blog.csdn.net/piaotiejun/article/details/48734175(下面的錯誤辦法解決)
我是大魚吃小魚 ||?易冬英 , 前端小渣渣一枚,如有不對,歡迎各位大佬批評指正!