Git使用小技巧之免密登陆

想要获取更多文章能够访问个人博客 - 代码无止境git

小代同窗在使用Git的过程当中发现,每次向远程仓库推送代码的时候都须要输入帐号密码。作为一个程序员,多多少少都会有偷懒的思惟。那么如何才能避免每次都要输入帐号密码呢?一番研究以后,小代同窗发现了两种实现方式。一种是让Git记住密码,第二种就是使用SSH协议推送。程序员

准备工做

首先咱们须要准备一个和小代差很少的环境,这样才能完整的模拟小代同窗的操做。第一步咱们须要在Github上建立一个仓库,以下图所示。github

建立Github仓库
远程仓库建立完成后,咱们须要将其克隆到本地。

git clone https://github.com/ganchaoyang/git-test.git
复制代码

你会发现每次向远程仓库PUSH代码的时候都会提示输入帐号密码,以下所示:bash

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

这样,我本地就有了一个和小代同窗差很少的环境,下面咱们就一块儿来看下小代同窗是如何操做的吧。dom

Git记住密码

首先小代同窗尝试的是第一种方式--记住密码。这种方式只须要设置credential.helper = store配置就能够了。那么怎么设置呢?很简单一行命令就能够搞定。ssh

git config --global credential.helper store
复制代码

执行完这句命令后,咱们会发如今用户主目录下的.git/config文件里面会多了一项配置。ide

[credential]
        helper = store
复制代码

而后咱们发现我只须要在第一次推送的时候输入帐号密码,第二次日后都不须要再输入密码了。--global的配置是对该用户全局生效的,若是你只想当前项目生效,在配置的时候只须要去掉--global便可。固然了,若是你不想执行命令,直接Copy上面配置的内容到你的.git/config文件里面也是能够的。学习

SSH协议方式

小代还发现一种能够实现无需密码就往远程推送代码的方式,那就是配置SSH KEY。那么如何配置呢?
1.首先,咱们须要在咱们本地的机器上生成一对ssh的公私钥。测试

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/目录下。fetch

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:学习不止,码不停蹄!若是您喜欢个人文章,就关注我吧!

扫码关注“代码无止境”
相关文章
相关标签/搜索