1. 程式人生 > 其它 >Git配置ssh

Git配置ssh

技術標籤:CouseraBasicLevelgit

1.檢查本機是否有ssh key設定,切換到.ssh目錄
  $ cd ~/.ssh 或cd .ssh

2.配置git使用者名稱和郵箱,配置多個使用者時新增 --add 引數
  $ git config --global --add user.name “username”
  $ git config --global --add user.email “email”

$ git config --global --unset user.name “username”            #移除使用者
  $ git config --global --unset user.email “email”               #移除郵箱

3.檢視使用者名稱和郵箱
  $ git config --list

(如果沒有安裝TortoiseGit則跳過)因為TortoiseGit和Git的衝突需要把TortoiseGit設定改正如下:
  1.在右鍵選擇 TortoiseGit -> Settings -> Network
  2.將SSH client指向 ~Git\usr\bin\ssh.exe (Git安裝路徑下的\usr\bin\ssh.exe)

4.生成成對的私鑰公鑰
  $ ssh-keygen -t rsa -C “[email protected]
  注:生成id_rsa私鑰公鑰時需要命不同檔名,密碼可設可不設。

5.新增ssh key到對應的GitHub或GitLab上面
  登入GitHub系統;點選右上角賬號頭像的“▼”→Settings→SSH kyes→Add SSH key。
  複製id_rsa.pub的公鑰內容到Key填寫框內。

6.測試公鑰配置是否成功
  $ssh -T [email protected] 
新增sshkey至ssh-agent

1、執行eval “$(ssh-agent -s)”確認ssh-agent處於開啟狀態,列印pid... 表示啟用中;

2、執行指令ssh-add ~/.ssh/id_rsa 新增ssh key至ssh agent,此步會要求輸入步驟二設定的密碼;

      需要注意的是此處可能報錯:Could not open a connection to your authentication agent,
      解決辦法是關掉當前git bash視窗,重新以管理員身份執行git bash 即解決問題;
      執行ssh-add時出現Could not open a connection to your authentication agent

在執行 ssh-add ~/.ssh/id_ras 時發生錯誤,

執行如下命令 ssh-agent bash
然後再執行 ssh-add ~/.ssh/id_ras 即可。


FQA
1.Git克隆程式碼需要輸入密碼?Git提交程式碼需要輸入賬號、密碼的。
  tips:      1.Access denied.
         2.Authentication failed.
         3.Permission denied (publickey).
  說明:問題根源是TortoiseGit採用的是自己的ssh.exe生成金鑰,與git的金鑰生成方式不一致,導致金鑰無效。
  解決:  1.重新配置使用者名稱和郵箱,重新生成金鑰,把金鑰放入遠端倉庫中。
       2.檢查TortoiseGit右鍵的TortoiseGit -> Settings -> Network設定,
        將SSH client指向 ~Git\usr\bin\ssh.exe

2.Git採用 http 方式(而不是ssh)clone/pull/push程式碼時,需要輸入使用者名稱密碼,解決每次輸入賬號密碼

解決:執行儲存密碼命令
    $git config --global credential.helper store
  命令會在專案本地生成一個文字,記錄賬號和密碼。使用上述的命令配置好之後,再操作一次git pull,然後它會提示輸入賬號和密碼,這一次之後就不需要再次輸入賬號和密碼了。

常用命令
$git clone url                  #克隆遠端倉庫
$git --version                  #檢視git的版本資訊
$git branch                   #檢視本地所有分支
$git branch -a                  #檢視所有的分支
$git branch -r                  #檢視遠端所有分支
$git branch dev                 #建立分支
$git branch -D master develop           #刪除本地庫develop

$git checkout dev                #切換到本地dev分支
$git checkout -b dev               #建立分支並切換分支
$git checkout --track origin/dev           #切換到遠端dev分支

$git commit                   #提交
$git commit -am “test”               #提交併且加註釋
$git commit -m [message]             #提交暫存區到倉庫區
$git commit -v                  #提交時顯示所有diff資訊

$git status                    #檢視當前狀態
$git remote show                 #檢視遠端庫
$git remote add origin url              #新增遠端庫
$git remote show origin              #顯示遠端庫origin裡的資源

$git pull                     #本地與伺服器端同步
$git push origin master               #將檔案給推到伺服器上
$git push origin master:develop           #將本地庫develop與伺服器上的庫進行關聯
$git push origin master:my-dev           #將本地庫與伺服器上的庫進行關聯

$git merge origin/dev               #將分支dev與當前分支進行合併
$git add read.txt                  #將檔案加入git
$git rm read.txt                  #從git中刪除指定檔案