亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

git多賬號登錄問題解析

 更新時間:2016年07月18日 09:37:57   作者:白狼  
這篇文章主要介紹了git多賬號登錄問題解析及git多個賬戶沖突問題的解決辦法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

同一服務器,同一托管平臺,多個賬號問題

1、添加key

我們暫且以oschina為例。為了更好的說明問題,我們在oschina平臺分別用賬號111新建項目test111和賬號222新建項目test222,記得項目私有化哦,不然我們也沒啥說的了。

在我們想要把項目test111 clone下來之前,需要先按照下面的步驟設置關聯(lián)的key

ssh-keygen -t rsa -C "111@163.com" // 郵箱是賬號111對應的郵箱

整個過程就回車完事,操作起來那是相當?shù)暮唵?!但是還沒完,可能你注意到了,回車的過程中,有一句話是這樣提示的:

Your public key has been saved in /root/.ssh/id_rsa.pub.

沒錯,我們現(xiàn)在打開這個文件

cat /root/.ssh/id_rsa.pub

拷貝文件里面的內容, 然后打開 http://git.oschina.net/keys 這個頁面,新建key,把復制的內容粘貼進來就好了。

這樣一來,我們就把服務器上面的key跟oschina平臺進行了關聯(lián)。

2、clone項目

接著我們通過git clone命令把test111項目clone下來,記得clone的地址是ssh而不是https哦,這個時候會提示我們輸入用戶名和密碼,其分別是oschina的賬號和密碼。

如果你手賤是以https的方式進行clone的,可以通過下面的命令重新設置遠程倉庫地址(沒有則可跳過此步驟)

// 移除之前的遠程倉庫地址
git remote remove origin
// 新增遠程倉庫地址為ssh,非https
git remote add origin git@git.oschina.net:wwolf/test111.git

3、多賬號兼容問題

到這里,對于test111項目pull push操作基本上都是沒有問題的了。如果說用戶222想在這臺服務器上面對項目test222進行管理,我們直接執(zhí)行git clone git@git.oschina.net:222/test222.git之后,報錯了,提示如下:

Access denied.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

為什么呢?首先最重要的問題肯定是key的問題了!因為我們之前并未層在這臺服務器增加key關聯(lián)到用戶222的oschina賬號!那我們就按照步驟1重新在服務器上為用戶222添加一個key吧,不過需要注意的是,我們的key保存的文件要重命名了,不然可就把用戶111創(chuàng)建的key覆蓋了!

ssh-keygen -t rsa -C "賬號222的郵箱@qq.com"
//接下來會提示我們想要把key保存在哪個文件,重新輸入文件名即可
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_2
//接著回車回車回車完事,重要的話說三遍!

然后我們登錄賬號222的oschina賬號添加key

但是問題出現(xiàn)了,這個時候我們重新clone test222依舊提示我們沒權限,怎么回事???本篇文章的中心主題曝光了!廢話了一堆,開始說重點--------------------------

其實這個時候我們clone test222項目時,git是拿默認的id_rsa.pub文件里面的key去對比的,這肯定是有問題的嘛,因為222賬號并沒有添加這個key!那也就是說我們這里如果clone test222的時候讓git拿著id_rsa_2.pub文件里面的key去驗證不就完事了么?是的,就是這樣!我們看實現(xiàn)步驟:

首先我們讓git識別我們新增的key

ssh-agent bash
ssh-add ~/.ssh/id_rsa_2

接著我們在~/.ssh/ 目錄下新建或者修改config文件

#Host 是你遠程倉庫的地址,注意哦,如果有些服務器做的ip端口轉發(fā),這里不要帶上端口號
Host git.oschina.net
#HostName 是遠程倉庫的地址,同樣如果做的端口轉發(fā)也不應帶端口號
HostName git.oschina.net
#Port 端口號,如果有做轉發(fā)需要在這里填寫端口號,沒有就不必要填
#Port 8800
#用戶
User 111
#識別key的文件
IdentityFile ~/.ssh/id_rsa
#都指向同一個平臺的話,下面的Host需要做個處理,因為我們在用這個key的時候根據(jù)Host從上到下進行查找,不做修改肯定會先查找到第一個key,依舊無效,隨便改就好了,其他參數(shù)不做特殊處理
Host git222.oschina.net
HostName git.oschina.net
#Port 8800
User 222
IdentityFile ~/.ssh/id_rsa_2

可以看到,我們對222用戶的Host做了處理,那么我們就需要修改下222的遠程倉庫地址了

// 原倉庫地址
git@git.oschina.net:222/test222.git
// 修改為
git@git222.oschina.net:222/test222.git

也就是說這個時候用戶222只需要執(zhí)行命令

git clone git@git222.oschina.net:222/test222.git

就可以了!就可以了?。?!

cd test222/
//發(fā)現(xiàn)git pull git push也都沒有任何問題

同一服務器,不同托管平臺,多個賬號問題

這多個平臺的問題基本上就簡單了,為了舉例說明,我們用gitlab平臺的333賬號的項目test333進行測試,注意哦,我們是注冊第三個賬號在上面兩個賬號的基礎之上進行的測試

git clone git@gitlab.com:333/test333.git
// 可想而知,同樣是沒權

因為沒那么多郵箱,我們注冊gitlab依舊使用的是用戶222的郵箱,不過這對我們的操作沒任何影響,無非就是多創(chuàng)建一個id_rsa_3文件而已,鑒于此,我們直接拷貝id_rsa_2.pub里面的key到gitlab平臺。

然后在~/.ssh/config文件內添加gitlab平臺的配置即可

Host gitlab.com
HostName gitlab.com
#Port 8800
User 333
//因為gitlab的郵箱跟用戶222一致,這里用這個key,如果不一致,你仍然需要生成新的key,這里引用新的key文件
IdentityFile ~/.ssh/id_rsa_2

PS:Git多個賬戶沖突問題解決

由于自己有兩個github賬號,最近在push項目時,突然發(fā)現(xiàn)一直提示的permission denied. 細看原來是用的另外一個github的賬號,不是當前origin所在的github對應的賬號。于是查找了一stackoverflow上面的解決方http://stackoverflow.com/questions/14689788/multiple-github-accounts-what-values-for-host-in-ssh-config。

清除git的全局設置

git config --global user.name "your_name"
git config --global user.email "your_email"

然后重新設置每個項目的非全局的用戶名和郵箱:

git config user.name "your_name" 
git config user.email "your_email" 

SSH配置

在~/.ssh目錄下面,使用ssh-keygen -C “your_email” -t rsa 生成公私秘鑰,當有多個github賬號的時候,可以生成多組rsa的公司密鑰。然后配置~/.ssh/config文件(如果沒有的話請重新創(chuàng)建一個):

#第一個github項目賬號 
Host first_project 
HostName github.com 
User first_user 
IdentityFile ~/.ssh/id_rsa_first 
#第二個git項目賬號 
Host second_project
HostName github.com 
User second_user 
IdentityFile ~/.ssh/id_rsa_second 

從first項目拉取代碼:

git pull first master

相關文章

  • shell腳本編程之case語句學習筆記

    shell腳本編程之case語句學習筆記

    這篇文章主要介紹了shell腳本編程之case語句學習筆記,本文代碼中包含注釋來說明case語句的使用,需要的朋友可以參考下
    2014-09-09
  • Shell腳本8種字符串截取方法總結

    Shell腳本8種字符串截取方法總結

    這篇文章主要介紹了Shell腳本8種字符串截取方法總結,每個方法給出了實例代碼和操作結果,一目了然,需要的朋友可以參考下
    2014-10-10
  • linux腳本判斷條件總結(必看)

    linux腳本判斷條件總結(必看)

    下面小編就為大家?guī)硪黄猯inux腳本判斷條件總結(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • shell腳本nicenumber實現(xiàn)代碼

    shell腳本nicenumber實現(xiàn)代碼

    給出一個數(shù)字,用逗號分隔的形式顯示出來,希望DD和TD被實例化等
    2016-08-08
  • 同一個文件在windows和linux下計算md5哈希不一致的原因及解決方法

    同一個文件在windows和linux下計算md5哈希不一致的原因及解決方法

    下面小編就為大家?guī)硪黄粋€文件在windows和linux下計算md5哈希不一致的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Linux中10個方便的Bash別名

    Linux中10個方便的Bash別名

    今天小編就為大家分享一篇關于Linux中10個方便的Bash別名,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-09-09
  • linux shell自定義函數(shù)(定義、返回值、變量作用域)介紹

    linux shell自定義函數(shù)(定義、返回值、變量作用域)介紹

    linux shell 可以用戶定義函數(shù),然后在shell腳本中可以隨便調用。下面說說它的定義方法,以及調用需要注意那些事項
    2013-02-02
  • shell之分離解析腳本的實現(xiàn)方法

    shell之分離解析腳本的實現(xiàn)方法

    這篇文章主要介紹了shell之分離解析腳本的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Linux下使用expect命令編寫自動化交互腳本

    Linux下使用expect命令編寫自動化交互腳本

    今天小編就為大家分享一篇關于Linux下使用expect命令編寫自動化交互腳本,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-11-11
  • bash腳本輸入密碼不回顯問題的解決方法

    bash腳本輸入密碼不回顯問題的解決方法

    編寫一個bash腳本時,需要用戶輸入一個密碼,方可繼續(xù)后續(xù)流程,但是又要保證用戶輸入的密碼不會被別人看到,因此排除了通過參數(shù)將密碼傳入腳本的方案
    2013-08-08

最新評論