git配置ssh服務

@git配置ssh服務html

create by db on 2020-2-16 18:49:26
Recently revised in 2020-2-16 18:49:31git

Hello 小夥伴們,若是以爲本文還不錯,麻煩點個贊或者給個 star,大家的贊和 star 是我前進的動力!GitHub 地址github

前言

 在管理Git項目上,不少時候都是直接使用https url克隆到本地,固然也有有些人使用SSH url克隆到本地。shell

 這兩種方式的主要區別在於:c#

  • 使用https url克隆對初學者來講會比較方便,複製https url而後到git Bash裏面直接用clone命令克隆到本地就行了,可是每次fetch和push代碼都須要輸入帳號和密碼,這也是https方式的麻煩之處。windows

  • 而使用SSH url克隆卻須要在克隆以前先配置和添加好SSH key,所以,若是你想要使用SSH url克隆的話,你必須是這個項目的擁有者。不然你是沒法添加SSH key的,另外ssh默認是每次fetch和push代碼都不須要輸入帳號和密碼,若是你想要每次都輸入帳號密碼才能進行fetch和push也能夠另外進行設置。bash

 下面主要是講述如何配置使用ssh方式來提交和克隆代碼。app

正文

配置本機ssh

1、肯定的是你的電腦上是安裝過Git

打開cmd,查看git版本:ssh

輸入:git --version
顯示:git version 2.20.1.windows.1
複製代碼

 若是顯示相似git version 2.20.1.windows.1的Git版本,說明你的電腦是安裝過Git的;不然請左轉打開Git的正確姿式,把Git安裝完了再來,不送。ide

2、查看是否配置了git用戶名和郵箱

輸入:git config user.name
顯示:用戶名
輸入:git config user.email
顯示用戶郵箱
複製代碼

若是沒有配置,那麼須要配置用戶名和郵箱:

輸入:git config --global user.name "xxx"

輸入:git config --global user.email "xxx"
複製代碼

3、查看是否配置過SSH Key(密鑰)

輸入:cd ~/.ssh
輸入:ls,
複製代碼

 查看該文件下的文件,看是否存在 id_isaid_isa.pub 文件(也能夠是別的文件名,只要 yourNameyourName.pub 成對存在就能夠),若是存在的話,證實已經存在 ssh key了,能夠直接跳過四、生成SSH Key這一步驟,

4、生成SSH Key(密鑰)

輸入: ssh-keygen -t rsa -C "你的郵箱"
複製代碼

 此處會提示Enter file in which to save the key (/Users/shutong/.ssh/id_rsa):這樣一段內容,讓咱們輸入文件名,若是第3步的文件存在的話最好在這裏修改一下文件名以防覆蓋以前的內容;若是第3步的文件不存在的話則直接按enter鍵就行了。

 以後會有提示你是否須要設置密碼,若是設置了每次使用Git都會用到密碼,通常都是直接不寫爲空,直接enter就行了。

 上述操做執行完畢後,在~/.ssh/目錄會生成XXX-rsa(私鑰)和XXX-rsa.pub(公鑰),它們默認的存儲路徑是:

C:\Users\Administrator.ssh

注意

我的建議生成的rsa最好單獨命名不要使用默認名稱,由於有可能sshkey可能會用在多個地方,一不當心就可能被覆蓋而後致使git功能異常

5、添加公鑰到你的遠程倉庫(github)

1 、查看你生成的公鑰:

輸入:cat ~/.ssh/id_rsa.pub
複製代碼

 這裏會把公鑰顯示出來,咱們把這段內容複製出來。

二、添加公鑰到遠程倉庫:

 登錄你的github賬戶 -> 點擊你的頭像,而後點擊 Settings -> 左欄點擊 SSH and GPG keys -> 點擊 New SSH key

 而後將複製的公鑰內容,粘貼進Key文本域內。 title域,本身隨便起個名字。

 點擊 Add SSH key

二、查看 ssh文件是否配置成功

輸入: ssh -T git@github.com
輸出: Hi danygitgit! You've successfully authenticated, but GitHub does not provide shell access. 複製代碼

 恭喜你,你的設置已經成功了。

6、修改git的remote url

 若是以前添加的是HTTPS協議的github倉庫地址,那麼每次push或者pull仍然須要密碼,因此,咱們須要將其修改成ssh協議的,這樣,就不須要這麼麻煩了。

 那麼咱們應該怎麼辦呢?

一、查看當前的 remote url

 首先進入本地倉庫,右鍵 -> Git Bash Here

輸入: git remote -v
輸出: origin https://github.com/danygitgit/document-library.git (fetch)
輸出: origin https://github.com/danygitgit/document-library.git (push)
複製代碼

  若是是以上的結果那麼說明此項目是使用https協議進行訪問的(若是地址是git開頭則表示是git協議)

二、複製遠程倉庫的ssh連接

 登錄你的遠程倉庫,在上面能夠看到你的ssh協議相應的url,相似:

git@github.com:danygitgit/document-library.git

複製此ssh連接。

二、修改git的remote url

方法有三種:

  1. 修改命令

git remote origin set-url [url]

  1. 先刪後加

git remote rm origin git remote add origin [url]

  1. 直接修改config文件

 找到倉庫下 .git 文件夾下的config文件,打開,能夠看到如下內容

[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url =https://github.com/danygitgit/document-library.git fetch = +refs/heads/:refs/remotes/origin/[branch "master"] remote = origin merge = refs/heads/master

 將文件中的 url =https://github.com/danygitgit/document-library.git更改成 url = git@github.com:danygitgit/document-library.git 便可。

 修改後的文件以下

[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url = git@github.com:danygitgit/document-library.git fetch = +refs/heads/:refs/remotes/origin/[branch "master"] remote = origin merge = refs/heads/master

 之後,不論是push仍是pull,你都不須要再提交密碼了。

7、Sourcetree配置ssh密鑰

SourceTree是一款git管理可視化工具,就不須要繁瑣的敲打命令行了。我的比較推薦,不管在windows環境仍是mac的os環境。官網連接

 關於SourceTree的安裝及配置就不贅述了,具體請參考

總結

 磨刀不誤砍柴工。敢於嘗試,善於總結。開啓你的Git踩坑之旅吧!

 路漫漫其修遠兮,但願Git能夠幫咱們記錄每個腳印,每一步成長。與諸君共勉。

 祝你們2020更上一層樓!

後記:Hello 小夥伴們,若是以爲本文還不錯,記得點個贊或者給個 star,大家的贊和 star 是我編寫更多更豐富文章的動力!GitHub 地址

知識共享許可協議
db 的文檔庫http://www.javashuo.com/tag/db 採用 知識共享 署名-非商業性使用-相同方式共享 4.0 國際 許可協議進行許可。
基於github.com/danygitgit上的做品創做。
本許可協議受權以外的使用權限能夠從 creativecommons.org/licenses/by… 處得到。

相關文章
相關標籤/搜索