Git使用小技巧之免密登陸

想要獲取更多文章能夠訪問個人博客 - 代碼無止境git

小代同窗在使用Git的過程當中發現,每次向遠程倉庫推送代碼的時候都須要輸入帳號密碼。作爲一個程序員,多多少少都會有偷懶的思惟。那麼如何才能避免每次都要輸入帳號密碼呢?一番研究以後,小代同窗發現了兩種實現方式。一種是讓Git記住密碼,第二種就是使用SSH協議推送。程序員

準備工做

首先咱們須要準備一個和小代差很少的環境,這樣才能完整的模擬小代同窗的操做。第一步咱們須要在Github上建立一個倉庫,以下圖所示。github

建立Github倉庫
遠程倉庫建立完成後,咱們須要將其克隆到本地。bash

git clone https://github.com/ganchaoyang/git-test.git

你會發現每次向遠程倉庫PUSH代碼的時候都會提示輸入帳號密碼,以下所示:dom

root@server01:~/git-test# git push
Username for 'https://github.com': ganchaoyang
Password for 'https://ganchaoyang@github.com':

這樣,我本地就有了一個和小代同窗差很少的環境,下面咱們就一塊兒來看下小代同窗是如何操做的吧。ssh

Git記住密碼

首先小代同窗嘗試的是第一種方式--記住密碼。這種方式只須要設置credential.helper = store配置就能夠了。那麼怎麼設置呢?很簡單一行命令就能夠搞定。ide

git config --global credential.helper store

執行完這句命令後,咱們會發如今用戶主目錄下的.git/config文件裏面會多了一項配置。學習

[credential]
        helper = store

而後咱們發現我只須要在第一次推送的時候輸入帳號密碼,第二次日後都不須要再輸入密碼了。--global的配置是對該用戶全局生效的,若是你只想當前項目生效,在配置的時候只須要去掉--global便可。固然了,若是你不想執行命令,直接Copy上面配置的內容到你的.git/config文件裏面也是能夠的。測試

SSH協議方式

小代還發現一種能夠實現無需密碼就往遠程推送代碼的方式,那就是配置SSH KEY。那麼如何配置呢?
1.首先,咱們須要在咱們本地的機器上生成一對ssh的公私鑰。fetch

root@server01:~/git-test# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:iik07xiElU3zph5Gv3VbwSUEhRX9vpHhz1ZaRegndzw root@server01
The key's randomart image is:
+---[RSA 2048]----+
|    o     .**o.. |
|   + o    .. oo .|
|  o o o     o. + |
| o . +       .oEB|
|. + + . S . . .=*|
| o = + + . o   ++|
|  o = o   .    +=|
|   =          ..+|
|  . .          . |
+----[SHA256]-----+

中間的Enter passphrase是讓你輸入密鑰的訪問密碼,若是不須要的話直接回車便可。公私鑰對默認生成在用戶主目錄下的.ssh/目錄下。

2.第二步咱們須要將公鑰複製到Github上。在用戶設置界面有個SSH and GPG keys,咱們點擊它並選擇新建一個SSH key,而後將公鑰複製進去便可。在Github上添加SSH公鑰的詳細操做步驟能夠參考官網的教程

添加SSH key
3.這一步咱們須要修改本地倉庫中的遠程倉庫的地址,其實咱們只需將.git/config文件中遠程倉庫的地址由http的地址換成ssh的地址便可。(PS:這兩種協議的地址均可以在Github上獲取。)

# 修改前
[remote "origin"]
    url = https://github.com/ganchaoyang/git-test.git
    fetch = +refs/heads/*:refs/remotes/origin/*

# 修改後
[remote "origin"]
    url = git@github.com:ganchaoyang/git-test.git
    fetch = +refs/heads/*:refs/remotes/origin/*

4.到這一步咱們已經完成了SSH的配置,只須要推送一下代碼測試一下便可。你會發現真的不須要密碼了。

$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 259 bytes | 259.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:ganchaoyang/git-test.git
   e8bcffc..6e1e8a9  master -> master

結束語

今天這篇文章主要介紹了兩種推送代碼無需輸入遠程倉庫帳號密碼的方式,分別是讓Git記住密碼以及配置SSH KEY,但願可以對你有所幫助。

PS:學習不止,碼不停蹄!若是您喜歡個人文章,就關注我吧!

掃碼關注「代碼無止境」
相關文章
相關標籤/搜索