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( ...
随机推荐
- 基于开源软件构建高性能集群NAS系统,包括负载均衡(刘爱贵)
大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC ...
- Redis实现Timeline
上回写了[使用Redis实现关注关系][1],这次说说使用Redis实现Timeline. Timeline的实现一般有推模式.拉模式.推拉结合这几种. 推模式:某人发布内容之后推送给所有粉丝,空间换 ...
- LINQ查询表达式---------orderby子句
LINQ查询表达式---------orderby子句 LINQ可以按元素的一个或多个属性对元素进行排序. class Program { public class PerInfo { public ...
- Mac OS启动服务优化高级篇(launchd tuning)禁用某些服务
http://kenwublog.com/mac-os-launchd-tuning Mac下的启动服务主要有三个地方可配置:1,系统偏好设置->帐户->登陆项2,/System/Libr ...
- WPF用DirectSound播放声音
示例代码: var fileName = @"D:\WindowsLogon.wav"; DevicesCollection sound_devices = new Devices ...
- Database Comparer VCL 6.4.908.0 D5-XE10.1
Database Comparer VCL compares and synchronizes databases structure (metadata) and table data for ma ...
- 编译安装python
编译安装python 1.下载python3的原码包 1.1下载到到opt目录中 cd /opt 1.2下载python3的原码包 wget https://www.python.org/ftp/py ...
- git(一)
一.邮件的格式 抄送:需要知道这件事的人 内容: 大家好: 我是xxx,附件内容是我的简历,请查收,有问题可以随时联系我susun|开发工程师电话:1231xxxxx31地址:xxxxxx联系电话(公 ...
- 点菜网---Java开源生鲜电商平台-系统架构图(源码可下载)
点菜网---Java开源生鲜电商平台-系统架构图(源码可下载) 1.点菜网-生鲜电商平台的价值与定位. 生鲜电商平台是一家致力于打造全国餐饮行业智能化.便利化.平台化与透明化服务的创新型移动互联网平台 ...
- 深入V8引擎-AST(2)
先声明一下,这种长系列的大块头博客只能保证尽可能的深入到每一行源码,有些代码我不乐意深究就写个注释说明一下作用.另外,由于本地整理的比较好,博客就随心写了. 整个Compile过程目前只看到asmjs ...