ssh
git是分布式版本控制系統,這意味著您可以在本地工作,但您也可以將更改共享或「推送」到其他伺服器。在將更改推送到gitlab伺服器之前,您需要乙個用於共享資訊的安全通訊通道。
ssh協議提供此安全性,並允許您對gitlab遠端伺服器進行身份驗證,而無需每次提供使用者名稱或密碼。
有關ssh協議如何工作的更詳細的解釋,我們建議您閱讀digitalocean的這本漂亮的教程。
查詢現有的ssh金鑰對
在生成新的ssh金鑰對之前,檢查您的系統是否已經在預設位置通過開啟shell或windows上的「命令提示符」執行以下命令:
windows命令提示符:
type %userprofile%\.ssh\id_rsa.pub
windows / gnu / linux / macos / powershell上的git bash
cat ~/.ssh/id_rsa.pub
如果您看到乙個字串,ssh-rsa您已經有乙個ssh金鑰對,您可以跳過下乙個部分的生成部分,並跳到副本到剪貼簿步驟。如果您沒有看到字串或想要生成具有自定義名稱的ssh金鑰對繼續下一步。
注意:公共ssh金鑰也可以命名如下:
id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
生成乙個新的ssh金鑰對
要生成新的ssh金鑰對,請使用以下命令:
windows / gnu / linux / macos上的git bash
ssh-keygen -t rsa -c "[email protected]" -b 4096
視窗:接下來,系統將提示您輸入檔案路徑以儲存ssh金鑰對。
如果您還沒有ssh金鑰對,請按enter鍵使用建議的路徑。使用建議的路徑通常允許您的ssh客戶端自動使用ssh金鑰對,而不需要額外的配置。
如果你已經有了乙個ssh金鑰對建議的檔案路徑,則需要輸入乙個新的檔案路徑,並宣告此ssh金鑰對將在您使用什麼主機.ssh/config檔案,請參閱使用非預設的ssh金鑰對路徑工作
的更多資訊。
輸入檔案路徑後,系統將提示您輸入密碼以保護ssh金鑰對。使用ssh金鑰對的密碼是最佳做法,但不是必需的,您可以按enter鍵跳過建立密碼。
注意:
如果要更改ssh金鑰對的密碼,可以使用
ssh-keygen -p 。
下一步是複製公共ssh金鑰,因為我們將需要它。
要將公共ssh金鑰複製到剪貼簿,請使用以下相應的**:
macos的:
pbcopy < ~/.ssh/id_rsa.pub
gnu / linux(需要xclip包):
xclip -sel clip < ~/.ssh/id_rsa.pub
windows命令列:
type %userprofile%\.ssh\id_rsa.pub | clip
windows / windows powershell上的git bash:
cat ~/.ssh/id_rsa.pub | clip
最後一步是將您的公共ssh金鑰新增到gitlab。
導航到「配置檔案設定」中的「ssh金鑰」選項卡。將您的金鑰貼上到「金鑰」部分並給出相關的「標題」。使用可識別的標題,如「工作膝上型電腦 - windows 7」或「家庭macbook pro 15」。
如果您手動複製公共ssh金鑰,請確保您複製了從ssh-rsa您的電子郵件開始和結尾的整個金鑰。
或者,您可以通過執行ssh -t [email protected]
(替換example.com為gitlab域)並驗證是否收到welcome to gitlab訊息來測試您的設定。
使用非預設ssh金鑰對路徑
如果您為gitlab ssh金鑰對使用非預設檔案路徑,則必須配置ssh客戶端,以找到gitlab專用ssh金鑰以連線到gitlab伺服器(也許gitlab.com)。
對於您當前的終端會話,您可以使用以下命令(替換other_id_rsa為您的私有ssh金鑰):
windows / gnu / linux / macos上的git bash
eval $(ssh-agent -s)
ssh-add ~/.ssh/other_id_rsa
要保留這些設定,您需要將它們儲存到配置檔案中。對於openssh客戶端,這在~/.ssh/config某些作業系統的檔案中進行了配置。以下是使用自己的ssh金鑰的兩個主機配置示例:
# gitlab.com server
host gitlab.com
rsaauthentication yes
identityfile ~/.ssh/config/private-key-filename-01
# private gitlab server
host gitlab.company.com
rsaauthentication yes
identityfile ~/.ssh/config/private-key-filename
由於各種ssh客戶端及其大量配置選項,對這些主題的進一步解釋超出了本文件的範圍。
公共ssh金鑰必須是唯一的,因為它們將繫結到您的帳戶。您的ssh金鑰是通過ssh推送**時唯一的識別符號。這就是為什麼它需要唯一地對映到乙個使用者。
部署金鑰
部署金鑰允許唯讀或讀寫(如果啟用)使用單個ssh金鑰對訪問乙個或多個專案。
這對於將儲存庫轉殖到持續整合(ci)伺服器非常有用。通過使用部署金鑰,您不必設定虛擬使用者帳戶。
如果您是專案主人或所有者,則可以在「repository」部分的專案設定中新增部署金鑰。指定新的部署金鑰的標題並貼上公共ssh金鑰。之後,使用相應的專用ssh金鑰的計算機具有對專案的唯讀或讀寫(如果啟用)訪問。
您不能使用該表單兩次新增相同的部署金鑰。如果要將另乙個專案新增到另乙個專案中,請在「從可用專案部署金鑰」列表中啟用它。所有可訪問的專案的所有部署金鑰都可用。該項目的訪問可以通過作為專案的直接成員,或通過組來實現。
部署金鑰可以在專案之間共享,您只需要將它們新增到每個專案中即可。應用蝕
如何將您的ssh金鑰新增到eclipse:https :
故障排除
如果在git轉殖中,系統將提示您輸入密碼,例如[email protected]'s password:
您的ssh設定有問題。
確保您正確生成ssh金鑰對,並將公共ssh金鑰新增到您的gitlab配置檔案中
嘗試使用ssh-agent本文件前面所述手動註冊您的私鑰
嘗試通過執行ssh -tv [email protected]
(替換example.com您的gitlab域)來除錯連線
Gitlab使用ssh方式請求需要密碼的解決方法
問題 gitlab是使用docker安裝的,配置好公鑰私鑰後,請求gitlab一直需要輸入密碼,而且這個密碼輸入什麼都被拒絕。原因 這是因為docker做了埠對映,宿主機使用埠2222對映容器的22埠。這樣,git客戶端請求伺服器時,如果沒有指定埠,預設使用的ssh埠還是22,將導致許可權驗證失敗。...
Gitlab配置SSH連線
1.檢查是否已經有ssh key。cd ssh2.生成乙個新的ssh。ssh keygen t rsa c email 之後直接回車,不用填寫東西。之後會讓你輸入密碼 可以不輸入密碼,直接為空,這樣更新 不用每次輸入 id rsa 密碼了 然後就生成乙個目錄.ssh 裡面有兩個檔案 id rsa i...
gitlab配置ssh金鑰
之前自己在伺服器上搭建了gitlab,安裝配置gitlab 使其能web頁面訪問,pull,push,clone 等都成功了.ssh 形式要弄生成配置 ssh秘鑰,之前沒弄過,在網上查了一些文章部落格,有本地windows電腦 生成配置的,有在伺服器git 命令生成配置的.然後在gitlab 中配置...