Git使用小技巧之免密登录
想要获取更多文章可以访问我的博客 - 代码无止境。
小代同学在使用Git的过程中发现,每次向远程仓库推送代码的时候都需要输入账号密码。做为一个程序员,多多少少都会有偷懒的思维。那么如何才能避免每次都要输入账号密码呢?一番研究之后,小代同学发现了两种实现方式。一种是让Git记住密码,第二种就是使用SSH协议推送。
准备工作
首先我们需要准备一个和小代差不多的环境,这样才能完整的模拟小代同学的操作。第一步我们需要在Github上创建一个仓库,如下图所示。
远程仓库创建完成后,我们需要将其克隆到本地。
git clone https://github.com/ganchaoyang/git-test.git
你会发现每次向远程仓库PUSH代码的时候都会提示输入账号密码,如下所示:
root@server01:~/git-test# git push
Username for 'https://github.com': ganchaoyang
Password for 'https://ganchaoyang@github.com':
这样,我本地就有了一个和小代同学差不多的环境,下面我们就一起来看下小代同学是如何操作的吧。
Git记住密码
首先小代同学尝试的是第一种方式--记住密码。这种方式只需要设置credential.helper = store配置就可以了。那么怎么设置呢?很简单一行命令就可以搞定。
git config --global credential.helper store
执行完这句命令后,我们会发现在用户主目录下的.git/config文件里面会多了一项配置。
[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/目录下。
2.第二步我们需要将公钥复制到Github上。在用户设置界面有个SSH and GPG keys,我们点击它并选择新建一个SSH key,然后将公钥复制进去即可。在Github上添加SSH公钥的详细操作步骤可以参考官网的教程。
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:学习不止,码不停蹄!如果您喜欢我的文章,就关注我吧!
Git使用小技巧之免密登录的更多相关文章
- Centos服务器ssh免密登录以及搭建私有git服务器
一.概述 服务器的免密登录和git服务器的搭建,关键都是要学会把自己用的机器的公钥添加到服务器上,让服务器“认识”你的电脑,从而不需要输入密码就可以远程登录服务器上的用户 免密登录当然是登录root用 ...
- 版本管理·玩转git(远程仓库配置和配置公钥免密登录)
git系列的最后一部分内容,我们先来看看如何查看远程仓库. 输入 git remote -v 我们还可以删除远程库,输入 git remote remove origin 删除后再次查询,信息为空. ...
- GIT生成SSH-KEY公钥放到服务器免密登录
在使用git时老是碰到在push的时候提示没有权限的问题,那么现在咱们就来创建ssh-key来免密登录.我们来看看如何配置服务器端的 SSH 访问. 本例中,我们将使用 authorized_keys ...
- Git (一)预设环境和免密登录
背景 一直用的svn,这段时间换了之后才发现git的强大功能.缺点就是可能上手比较难一点. 接下来就带你Git入门 Git是什么? Git是目前世界上最先进的分布式版本控制系统 Git有什么特点?好用 ...
- Git配置ssh免密登录
一.在用户目录下的.ssh目录下生成秘钥与公钥 如果用户目录下没有.ssh目录,则需要新建一个 cd ~/.ssh ssh-keygen -t rsa 一路回车即可 注:国内很多博客都会带上-C &q ...
- Git配置多个github账号免密登录
在公司开发中,有时候会存在公司账户跟私人账户共存,并随时需要切换的情况,这种情况下git可以配置多个ssh-key,无缝切换账号. 假如有两个github账号,一个是私人github账号,一个是公司g ...
- 【Git的基本操作九】ssh免密登录
SSH免密登录 1. 进入用户家目录 cd ~ 2. 删除原有的 .ssh 目录 rm -r .ssh 3. 运行命令生成 .ssh 目录 ssh-keygen -t rsa -C github或gi ...
- ubuntu16.04服务器配置ssh免密登录
原版资料英文,链接在此 https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 在客户端操作 ssh-k ...
- linux上ssh免密登录原理及实现
因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp( ...
随机推荐
- Android零基础入门第8节:HelloWorld,我的第一趟旅程出发点
原文:Android零基础入门第8节:HelloWorld,我的第一趟旅程出发点 经过前面几期的学习,我们知道了Android的前世今生,也大致了解了Android的系统架构和应用组件,然后花了几期来 ...
- Android零基础入门第42节:自定义BaseAdapter
原文:Android零基础入门第42节:自定义BaseAdapter 在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不 ...
- 用python的curl和lxml来抓取和分析网页内容
Curl是一个强大的URL语法的客户端,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, PO ...
- OpenSSL的命令行用法,以及参数大全
c:\openssl\bin>opensslOpenSSL> versionOpenSSL 1.0.2j 26 Sep 2016OpenSSL> https://wiki.opens ...
- Building PySide on Microsoft Windows
Prerequisites MS Visual Studio Express 2008 [microsoft.com] NOTE: Visual Studio Express 2010 is not ...
- LLVM和GCC的区别(LLVM提供了模块化的编译模块,非常有利于重用,以前的编译器都没有做到这一点)
最近在Mac OS X Mountain Lion下用Xcode进行开发,发现在编译选项里有如下所示的这两种编译器:一个是Apple LLVM compiler 4.2,另外一个是LLVM GCC 4 ...
- Git 常用命令大全(转)
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...
- ASP.NET Core 通过 Microsoft.DotNet.Watcher.Tools 实现热部署
之前开发前端的时候,webpack 会有热更新工具,在修改了代码之后,自动将代码编译,实时展现到页面上,给开发带来了极大的方便. Java也可以通过第三方插件JRebel实现热部署,不用频繁的重启To ...
- Google地图下载工具代码
// // Google Map Tiles Downloader in C# by coolypf // No rights reserved, neither warranty nor guara ...
- Nginx多种负载均衡策略搭建
背景介绍 上篇介绍了利用Nginx反向代理实现负载均衡,本文详细讲述Nginx下的几种负载均衡策略. 轮询 轮询,顾名思义,就是轮流请求,基于上篇文章的介绍,我们将负载均衡策略聚焦于default.c ...