GitLab關於SSH的使用

2022-03-01 03:14:53 字數 3258 閱讀 8504

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 中配置...