1. 程式人生 > >Gitlab配置ssh連線

Gitlab配置ssh連線

一般在管理遠端主機時,都用ssh登入,ssh [email protected],但是這樣每次會使用密碼。 使用ssh-keygen生成的金鑰對,然後將公鑰新增的目標主機的~/.ssh/authorized_keys檔案中,當前主機就成為可信任的主機,下次使用ssh登入時,就不用輸入密碼了。

Gitlab,Github都支援這種方式的連線,具體操作步驟如下:

第一步:生成金鑰對

使用ssh-keygen生成金鑰對:

  1. ssh-keygen -t rsa -C "你的郵箱"

這樣就在主目錄下的.ssh目錄中生成了兩個檔案id_rsaid_rsa.pubid_rsa中儲存的是私鑰,id_rsa.pub

中儲存的是公鑰。

第二步:新增公鑰

拷貝公鑰到剪下板:

  1. pbcopy < id_rsa.pub

在 個人資料->SSH Keys->Add new 頁面中貼上公鑰,就新增完成了。

第三步:測試

ssh加-T選項測試目標服務是否可用:

  1. ssh -T [email protected]"你的gitlab伺服器地址"

第一次連線時,會詢問是否信任主機,確認後輸入yes。如果看到Welcome to GitLab, Rusher!就算配置成功了,接下來就可以通過ssh來提交程式碼了。

Windows

  1. 生成金鑰對ssh-keygen -t rsa -C "你的郵箱"
  2. 生成之後用 notepad c:/User/Administrator/.ssh/id_rsa.pub
    開啟檔案,然後將公鑰新增的Gitlab中.
  3. 測試 ssh -T [email protected]"你的gitlab伺服器地址"

(只使用客戶端可忽略這節內容)

在客戶端提交時發現以下錯誤:

  1. /usr/local/lib/ruby/1.9.1/net/http.rb:762:in`initialize': getaddrinfo: Name or service not known (SocketError)
  2. from /usr/local/lib/ruby/1.9.1/net/http.rb:762:in `open'
  3. from /usr/local/lib/ruby/1.9.1/net/http.rb:762:in `block in connect'
  4. from/usr/local/lib/ruby/1.9.1/timeout.rb:54:in`timeout'
  5. from /usr/local/lib/ruby/1.9.1/timeout.rb:99:in `timeout'
  6. from /usr/local/lib/ruby/1.9.1/net/http.rb:762:in `connect'
  7. from/usr/local/lib/ruby/1.9.1/net/http.rb:755:in`do_start'
  8. from /usr/local/lib/ruby/1.9.1/net/http.rb:744:in `start'
  9. from /home/git/gitlab-shell/lib/gitlab_net.rb:64:in `get'
  10. from/home/git/gitlab-shell/lib/gitlab_net.rb:30:in`check'
  11. from ./check:11:in `<main>'

在Github的issue裡找到說先執行一下/home/git/gitlab-shell/bin/check 。先做檢測,發現和上面一樣的錯誤。看錯誤是找不到域名,所以在/etc/hosts中需要配置一個地址的對映。

  1. 127.0.0.1 YOUR_DOMIN # YOUR_DOMIN是在/home/git/gitlab-shell/config.yml中配置的gitlab_url

在配置Gitlab的時候一開始是用管理員賬戶做測試的,後來建了我自己的賬號做開發。這樣我的本地就有兩個Gitlab賬號,如果直接用ssh來提交程式碼有問題,因為ssh預設使用一開始生成id_rsa那個金鑰對,但不同的賬號又不能對應到同一個公鑰上。如果多個賬戶一起用,還需要做些配置。

假如有兩個賬號:root和rusher。

第一步:為兩個賬戶分別生成金鑰對

提示在哪裡儲存金鑰檔案的時候,對不同的賬號填不同的路徑,root放在/Users/you/.ssh/id_rsa_gitlab_root下,rusher的放在/Users/you/.ssh/id_rsa_gitlab_rusher

  1. ssh-keygen -t rsa -C [email protected].com
  2. Generatingpublic/private rsa key pair.
  3. Enter file in which to save the key (/Users/you/.ssh/id_rsa):/Users/you/.ssh/id_rsa_gitlab_rusher
  4. Enter passphrase (empty forno passphrase):
  5. Enter same passphrase again:
  6. Your identification has been saved in/Users/you/.ssh/id_rsa_gitlab_rusher.
  7. Yourpublic key has been saved in/Users/you/.ssh/id_rsa_gitlab_rusher.pub.
  8. ssh-keygen -t rsa -C [email protected].com
  9. Generatingpublic/private rsa key pair.
  10. Enter file in which to save the key (/Users/you/.ssh/id_rsa):/Users/you/.ssh/id_rsa_gitlab_root
  11. Enter passphrase (empty forno passphrase):
  12. Enter same passphrase again:
  13. Your identification has been saved in/Users/you/.ssh/id_rsa_gitlab_root.
  14. Yourpublic key has been saved in/Users/you/.ssh/id_rsa_gitlab_root.pub.

還是需要將兩個賬號的公鑰分別新增的各自賬號的SSH Keys中(rusher: id_rsa_gitlab_rusher.pub和root: id_rsa_gitlab_root.pub) 。

  1. ssh-add /Users/you/.ssh/id_rsa_gitlab_rusher
  2. ssh-add /Users/you/.ssh/id_rsa_gitlab_root

第二步:新增ssh配置檔案

在.ssh目錄中新增config檔案,此檔案的為不同的賬戶新增別名(root: root_gitlab 和 rusher: rusher_gitlab),連線還是同一個伺服器,但是使用不同的金鑰檔案,所以才能將兩個賬號分開。

  1. # for root
  2. Host root_gitlab
  3. HostName git.you.com
  4. User git
  5. IdentityFile/Users/you/.ssh/id_rsa_gitlab
  6. # for rusher
  7. Host rusher_gitlab
  8. HostName git.you.com
  9. User git
  10. IdentityFile/Users/you/.ssh/id_rsa_gitlab_rusher

配置完成後,使用ssh-add命令

接下來這樣使用別名測試,可以檢視是否對應到了正確的賬號上:

  1. ssh -T [email protected]_gitlab
  2. ssh -T [email protected]_gitlab

第三步:在git專案中使用別名

正常的專案,我們clone下來之後,origin對應的URL假設為: [email protected]:Rusher/helloworld,現在需要做個改動,將git.要換成rusher_gitlab,

  1. git remote set-url origin [email protected]_gitlab:Rusher/helloworld

如果是root使用者的專案:

  1. git remote set-url origin [email protected]_gitlab:root/helloworld

以上配置ssh的方法同樣適用於Github,Bitbucket等網站。

UPDATE 2013-08-16: 為不同賬號生成金鑰對後,需要使用ssh-add將金鑰新增進來,否則ssh不能使用正確的金鑰

相關推薦

Gitlab配置ssh連線

ssh公鑰登入 一般在管理遠端主機時,都用ssh登入,ssh [email protected],但是這樣每次會使用密碼。 使用ssh-keygen生成的金鑰對,然後將公鑰新增的目標主機的~/.ssh/authorized_keys檔案中,當前主機就成為可信任的主

Gitlab配置ssh連線,上傳專案到Gitlab

配置Git 我們先在電腦硬盤裡找一塊地方存放本地倉庫,比如我們把本地倉庫建立在E:\SouthernPowerGridProject\web_project\amod資料夾下 進入amod資料夾 滑鼠右鍵操作如下步驟: 1)在本地倉庫裡右鍵選擇Git Init He

gitlab 配置ssh key後連線一直提示輸入密碼的解決辦法

用yum安裝完gitLab 按照網上的教程進行設定ssh key,在進行專案的clone git clone [email protected]/xxx.git 提示需要輸入密碼,網上找了各種各樣的方法都沒有解決。 這個密碼並不是gitlab賬戶的密碼,而是

GitLab配置ssh key

郵箱地址 style lis 我們 ssh key 技術 為什麽 inf str 一、背景   當前很多公司都選擇git作為代碼版本控制工具,然後自己公司搭建私有的gitlab來管理代碼,我們在clone代碼的時候可以選擇http協議,當然我們亦可以選擇ssh協議來拉取代

GitLab配置ssh key和gitlab雙開

這篇部落格是參考  GitLab配置ssh key  中途遇到了幾個問題,所以記錄下 問題1:HTTPS拉下來的專案,使用SSH提交,仍然需要輸入使用者名稱和密碼     在“二、解決方案”中,我配置ssh後,在git bash裡,push的

gitlab配置 ssh Key

找到 輸入框 str ron rsa 管理 賬號 輸入 gitlab配置 1、打開控制臺:ssh-keygen -t rsa -C "GIT上的賬號郵箱" 2、回車 3、輸入密碼(git上的賬號密碼) 4、確認密碼 5、輸入命令 cd .ssh 6、輸入命令 cat id_

GitLab配置SSH Keys

命令列 開啟git bash, 輸入以下命令, 生成ssh公鑰和私鑰對, -C引數是郵箱地址 ssh-keygen -t rsa -C 'your-email' 開啟~/.ssh/id_rsa.pub檔案(~表示使用者目錄), 複製其中的內容. 開

Linux入門實踐筆記(五)——Win下Git配置SSH連線GitHub實現無密提交

#執行ssh-keygen指令生成SSH, #其中-t選項用於指定金鑰生成的演算法,此處使用RSA; #-C選項是公鑰檔案中的備註,此處使用使用者郵箱作為備註。 [email protected] MINGW64 ~/.ssh $ ssh-keygen -t rsa -C "[email 

git知識總結5——window下配置SSH連線GitHub

git能夠連線github,github做為免費的遠端倉庫 自己到github註冊帳號。 第一步 建立SSH KEY 如果使用的linux,檢查使用者宿主目錄是否有.ssh檔案。如果是windows使用命令  cd ~/.ssh  檢視是否有.ssh目錄。如果沒有則使用命令

最簡單git伺服器配置-SSH連線方式

Git伺服器連線可用的協議通常有SSH、GIT、HTTP(S)和FTP等,其中最方便實現的是SSH方式。 SSH方式的GIT伺服器實現也有兩種方式:如果你在一個小型團隊並且不需要做許可權控制,那麼使用SSH就可以搭建了,否則你還需要gitolite 本文將介紹如何使用SSH

gitlab-eclipse-ssh連線

    本文轉載自http://www.codeweblog.com/gitlab-eclipse-ssh%E8%BF%9E%E6%8E%A5/  感謝作者 以下作為記錄 主要有這麼幾步:生成key,新增key到服務,建立連線 1.生成key 我們用的是eclipse自帶

windows下gitlab配置 生成ssh key

git pub 開頭 str 命令 ID view 打開 nbsp Git-1.9.5-preview20141217 1. 安裝git,從程序目錄打開 "Git Bash" 2. 鍵入命令:ssh-keygen -t rsa -C "[email protected]"

jenkins配置SSH遠端伺服器連線

之前用jenkins做了一個自動釋出測試,配置任務的Post Steps時,選擇的是執行shell命令。如下圖:   這是在本192.168.26.233伺服器上測試的,此伺服器上執行jenkins,tomcat。現在換另一種方式,把jenkins打好的包遠端傳送到另一臺伺服器上執行。  

SSH連線GitHub並配置ssh key

SSH連線GitHub並配置ssh key 配置git的ssh提交,主要需要以下三步:   1.設定Git的user name和email   2.生成ssh   3.配置git 的ssh key 一、設定Git的user name和email //使用者名稱寫自己想寫的,比如:m

Google Cloud SSH 連線配置

設定當前使用者及root使用者的密碼 sudo passwd xx-user # 輸入新密碼 sudo passwd root # 輸入新密碼(建議保持一樣) 在本地生成私鑰和公鑰 cd ~/.ssh ssh-keygen -f myKey 。。。 # 此時會生成 公鑰 myKey.

git連線gitlabSSH加密部分

在瞭解之前,先註冊github賬號,由於你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的,所以需要一點設定:   第一步:建立SSH Key。在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案

mac上配置github和gitlabssh

配置多個ssh 步驟如下: 檢視電腦上有沒有ssh,執行cd ~/.ssh。 如果出現了下面的情況: -bash: cd: /Users/reng/.ssh: No such file or directory 說明你的電腦沒有相關的

Linux配置ssh服務和XShell連線Linux

SSH服務檢視和安裝,配置: https://www.cnblogs.com/qiuqiuqiu/p/6445426.html https://www.cnblogs.com/yunweis/p/7727077.html https://blog.csdn.net/java_dotar_01/artic

SSH連線GitHub、GitHub配置ssh key

配置git的ssh 提交需要以下步驟 1.設定Git的user name和email 2.生成ssh 3.配置git 的ssh key 1.設定Git的user name和email $ git config --global

Jmeter配置通過SSH連線的mysql資料庫

jmeter連線配置mysql資料庫時,如果資料庫伺服器沒有通過ssh連線,則只需要新增配置相應的jdbc引數就可以了。如果資料庫伺服器是通過SSH連線的,則需要通過中間遠端連線工具來登入,此處使用的遠端連線工具為Putty,具體的配置請參考如下: 1、首先,下載並開啟Putty,在Putty Config