1. 程式人生 > >ubuntu git生成ssh key (公鑰私鑰)配置GitLab

ubuntu git生成ssh key (公鑰私鑰)配置GitLab

Git是分散式的程式碼管理工具,遠端的程式碼管理是基於SSH的,所以要使用遠端的Git則需要SSH的配置。
github的SSH配置如下:
一 、
設定Git的user name和email:

git config --global user.name "xx"      
git config --global user.email "[email protected]"   

git config --list(檢視配置的資訊)


二、生成SSH金鑰過程:
1.檢視是否已經有了ssh金鑰:cd ~/.ssh
如果沒有金鑰則不會有此資料夾,有則備份刪除
2.生存金鑰:
$ ssh-keygen -t rsa(生產公鑰)
按3個回車,密碼為空。

最後得到了兩個檔案:id_rsa和id_rsa.pub

檢視id_rsa.pub公鑰

cat ~/.ssh/id_rsa.pub

開啟id_rsa.pub檔案,並且複製全部內容。

4).開啟GitLab賬戶,開啟SSH Keys:

將剛剛複製的內容新增到Key的文字域中,然後點選Add key

這樣就添加了一個SSH key。5).完成上面的步驟之後就可以使用ssh來連線GitLab,並進行相應的操作了。

在第一次使用SSH連線GitLab的時候會有一個RSA密碼指紋確認,輸入yes接受即可,以後再連線就不會出現確認提示了。

這就是我們通過SSH方式clone下來的專案。到此,我們就完成了為GitLab賬號新增SSH Keys並連線GitLab的所有過程。
---------------------  
一般會遇到如下問題:

1 .git新增公鑰後報錯sign_and_send_pubkey: signing failed: agent refused operation的解決辦法

  在伺服器新增完公鑰後報錯

1

sign_and_send_pubkey: signing failed: agent refused operation

Permission denied (publickey).

  解決辦法:這個時候我們只要執行下

1

2

eval "$(ssh-agent -s)"

ssh-add

  就可以了

2.解決 id_rsa 許可權不夠

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
Permissions 0644 for '/home/robin/.ssh/id_rsa' are too open.  
It is recommended that your private key files are NOT accessible by others.  
This private key will be ignored.  
bad permissions: ignore key: /home/robin/.ssh/id_rsa

解決辦法:這個時候我們只要執行下

chmod 755 ~/.ssh/  
chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub   
chmod 644 ~/.ssh/known_hosts 

 

 

三 、git 相關語句

git status              //檢視狀態,工作區相對於版本庫是否有修改
git diff                //檢視不同之處在哪
git add filename        //把指定檔案新增到版本庫中的暫存區
git commit -m "備註"    //把暫存區的修改提交到最終的本地倉庫中

git checkout -- filename     //會把工作區的相應檔案恢復到你最近提交的一個版本,即丟棄了工作區最新的更改,適用於還未提交的情況。
git reset HEAD filename     //丟棄了相應檔案的最新提交(add),不改變工作區和庫區,只改變了暫存區。
git reset --hard HEAD^      //版本回退,工作區和庫區都進行相應的回退。
rm filename                        //刪除工作區的相應檔案
git rm filename                   //刪除庫區的相應檔案,注意刪除之後應該進行commit
---------------------