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( ...
随机推荐
- 什么是 MEF?
什么是 MEF? Managed Extensibility Framework 即 MEF 是用于创建轻量.可扩展应用程序的库. 它让应用程序开发人员得以发现和使用扩展且无需配置. 它还让扩展开发人 ...
- INS-13001—win10系统安装oracle11g时遇到INS-13001环境不满足最低要求
升级win10系统之后,需要重新安装Oracle,因为在安装Oralce11g时,使用64位的会出现各种不兼容问题,我每次安装都是使用32位的数据库. 在安装时点击setup.exe之后,出现了:[I ...
- UWP入门(十)--创建、写入和读取文件
原文:UWP入门(十)--创建.写入和读取文件 核心的 API github代码 StorageFolder 类 StorageFile 类 FileIO 类 使用 StorageFile 对象读取和 ...
- HOLLOW_BRUSH等价于NULL_BRUSH,都代表透明化刷
NULL_BRUSH 或HOLLOW_BRUSH和GetStockObject函数 备注:HOLLOW_BRUSH等价于NULL_BRUSH,都代表透明化刷 HGDIOBJ GetStockObjec ...
- 简单封装 Delphi 的 DirectX类
var CreatorRenderer : TCreatorRenderer; Form1: TForm1; 窗体代码: {$R *.dfm} procedure TForm1.FormCreate ...
- Hadoop 3、Hadoop 分布式存储系统 HDFS(好多彩色图)
HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统. 一.HDFS的优缺点 1.HDFS优点: a.高容错性 .数据保存多个副本 .数 ...
- 记录一次PHP项目报502的问题
问题描述 最近有台服务器偶尔会报502错误,虽然量不多,每天就几十个,但是也必须得找到原因,避免让小问题变成大问题. 排查过程 502错误的原因,一般是对用户访问请求的响应超时造成的,一开始以为是请求 ...
- Git--将已有的项目添加到github
(2). 初始化本地仓库,并提交内容到本地 需要先打开 命令行终端,然后通过 cd 命令切换到需要添加到github 的项目的目录下,然后依次执行如下命令, 具体命令及其含义如下: 1). touch ...
- CentOS7.x mini安装OVS
命令均在root用户下运行: 一.关闭防护墙及selinux sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config setenfor ...
- 老雷socket编程之PHP利用socket扩展实现聊天服务
老雷socket编程之PHP利用socket扩展实现聊天服务 socket聊天服务原理 PHP有两个socket的扩展 sockets和streamssockets socket_create(AF_ ...