Git安裝以及配置SSH Key——Windows

安裝

  1. 安裝 Git
    官網下載一個Windows版本的Git。
  2. 而後一直下一步便可,以下圖
  3. 環境變量自動配好的,能夠去檢查一下環境變量中PATH中有沒有Git的環境變量
  4. 而後在桌面右擊鼠標,選擇Git bash here,而後輸入下面代碼:
git --version  #驗證git是否安裝成功,輸出版本號就表明安裝成功

配置全局用戶名和郵箱

安裝完成有配置一下全局的用戶名和郵箱,輸入以下命令:html

git config --global user.name "自定義用戶名"
git config --global user.email "郵箱"

使用以下命令能夠取消全局設置:linux

git config --global --unset user.name
git config --global --unset user.email

可使用以下命令查看當前的全局變量:git

git config --global --list

生成SSH Key

管理多個SSH Key

問題說明github

當有多個git帳號的時候,好比一個github,用於本身進行一些開發活動,再來一個gitlab,通常是公司內部的git。這二者你的郵箱若是不一樣的話,就會涉及到一個問題,生成第二個git的key的時候會覆蓋第一個的key,致使必然有一個用不了。windows

解決方法bash

咱們能夠在【~/.ssh】目錄下新建一個config文件配置一下,就能夠解決問題ssh

具體步驟:gitlab

1. 生成

  • 生成第一個ssh key(這裏我用的是公司的郵箱)
    進入【C:\Users\用戶名.ssh】,點擊鼠標右鍵-選擇Git bash here,這一步很重要,否則在下面輸入密鑰名稱的時候,會將密鑰生成在當前打開git bash的路徑下,好比我在桌面打開的git bash,就會生成在桌面上,固然也能夠在輸入名稱前將路徑補全。以下圖:
ssh-keygen -t rsa -C "yourmail@glanway.com"

在輸入文件名及路徑的時候,生成的密鑰命名爲【id_rsa_gitlab】,下面連續回車,沒有給密鑰設置密碼(看我的需求)
測試

  • 生成第二個ssh key(這裏用的個人GitHub郵箱)
ssh-keygen -t rsa -C "yourmail@qq.com"

生成後的文件以下圖:
.net

2. 執行ssh-agent命令

ssh-agent就是一個密鑰管理器,運行ssh-agent之後,使用ssh-add將私鑰交給ssh-agent保管,其餘程序須要身份驗證的時候能夠將驗證申請交給ssh-agent來完成整個認證過程

3. 添加私鑰,執行下面命令

ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab

在執行上面的添加私鑰命令時,若是出現以下錯誤:

解決方法以下:

  • 輸入以下命令查看已開啓的ssh-agent線程
ps aux | grep ssh
  • 執行以下命令殺死線程:
kill -9 線程號
  • 進入用戶名目錄下的.ssh目錄,打開git bash,執行以下命令
exec ssh-agent bash
eval ssh-agent -s
  • 再執行以下命令,將私鑰放進去
ssh-add ./id_rsa_github
ssh-add ./id_rsa_gitlab

4. 建立並修改config文件

  • 建立config文件,將文件建立在【.ssh】目錄下

    ①在windows下新建一個txt文本,而後將名字改爲config(包括.txt後綴)
      ②在git bash下,直接touch config便可建立一個config文件
  • 編輯config文件,修改以下內容:

# gitlab
Host gitool.glanway.com
HostName gitool.glanway.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
User mingyue

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User mingyue

配置文件說明:

每一個帳號單獨配置一個Host,每一個Host要取一個別名,每一個Host主要配置HostNameIdentityFile兩個屬性便可
Host的名字能夠取爲本身喜歡的名字,不過這個會影響git相關命令

例如:

Host mygithub 這樣定義的話,命令以下,即git@後面緊跟的名字改成mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
就至關於你配置的HostName真正的域名,映射成了Host後面的配置的名字

HostName                      #這個是真實的域名地址
IdentityFile                  #這裏是id_rsa的地址
PreferredAuthentications      #配置登陸時用什麼權限認證--可設置publickey,password publickey,keyboard-interactive等
User                          #配置使用用戶名

【注意】不要在配置文件中添加下面這樣的註釋
這種註釋在讀取該配置文件時會致使報錯,不被識別

HostName git.glanway.com //這裏填大家公司的git網址便可

生成單個ssh key

輸入以下命令,

ssh-keygen -t rsa -C "yourmail@xxxl.com"

生成單個SSH Key時能夠連續回車,不輸入密鑰文件名字和密碼:

生成後會在【C:\Users\用戶名.ssh】下產生兩個文件,如圖:

將公鑰添加到gitlab或者GitHub上

測試

輸入以下代碼,見到下圖即配置成功

ssh -T git@github.com
ssh -T git@gitool.glanway.com

轉載自:https://www.cnblogs.com/Gent-Wang/p/7422433.html

相關文章
相關標籤/搜索