Git安装以及配置SSH Key——Windows
安装
- 安装 Git
官网下载一个Windows版本的Git。 - 然后一直下一步即可,如下图
- 环境变量自动配好的,可以去检查一下环境变量中PATH中有没有Git的环境变量
- 然后在桌面右击鼠标,选择Git bash here,然后输入下面代码:
git --version #验证git是否安装成功,输出版本号就代表安装成功
配置全局用户名和邮箱
安装完成有配置一下全局的用户名和邮箱,输入如下命令:
git config --global user.name "自定义用户名"
git config --global user.email "邮箱"
使用如下命令可以取消全局设置:
git config --global --unset user.name
git config --global --unset user.email
可以使用如下命令查看当前的全局变量:
git config --global --list
生成SSH Key
管理多个SSH Key
问题说明
当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。
解决方法
我们可以在【~/.ssh】目录下新建一个config文件配置一下,就可以解决问题
具体步骤:
1. 生成
- 生成第一个ssh key(这里我用的是公司的邮箱)
进入【C:\Users\用户名.ssh】,点击鼠标右键-选择Git bash here,这一步很重要,不然在下面输入密钥名称的时候,会将密钥生成在当前打开git bash的路径下,比如我在桌面打开的git bash,就会生成在桌面上,当然也可以在输入名称前将路径补全。如下图:
ssh-keygen -t rsa -C "yourmail@glanway.com"
在输入文件名及路径的时候,生成的密钥命名为【id_rsa_gitlab】,下面连续回车,没有给密钥设置密码(看个人需求)
- 生成第二个ssh key(这里用的我的GitHub邮箱)
ssh-keygen -t rsa -C "yourmail@qq.com"
生成后的文件如下图:
2. 执行ssh-agent命令
ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程
3. 添加私钥,执行下面命令
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab
在执行上面的添加私钥命令时,如果出现如下错误:
解决方法如下:
- 输入如下命令查看已开启的ssh-agent线程
ps aux | grep ssh
- 执行如下命令杀死线程:
kill -9 线程号
- 进入用户名目录下的.ssh目录,打开git bash,执行如下命令
exec ssh-agent bash
eval ssh-agent -s
- 再执行如下命令,将私钥放进去
ssh-add ./id_rsa_github
ssh-add ./id_rsa_gitlab
4. 创建并修改config文件
创建config文件,将文件创建在【.ssh】目录下
①在windows下新建一个txt文本,然后将名字改成config(包括.txt后缀)
②在git bash下,直接touch config即可创建一个config文件
编辑config文件,修改如下内容:
# gitlab
Host gitool.glanway.com
HostName gitool.glanway.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
User mingyue
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User mingyue
配置文件说明:
每个账号单独配置一个Host
,每个Host
要取一个别名,每个Host
主要配置HostName
和IdentityFile
两个属性即可
Host
的名字可以取为自己喜欢的名字,不过这个会影响git相关命令
例如:
Host mygithub
这样定义的话,命令如下,即git@
后面紧跟的名字改为mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
就相当于你配置的HostName
真正的域名,映射成了Host
后面的配置的名字
HostName #这个是真实的域名地址
IdentityFile #这里是id_rsa的地址
PreferredAuthentications #配置登录时用什么权限认证--可设置publickey,password publickey,keyboard-interactive等
User #配置使用用户名
【注意】不要在配置文件中添加下面这样的注释
这种注释在读取该配置文件时会导致报错,不被识别
HostName git.glanway.com //这里填你们公司的git网址即可
生成单个ssh key
输入如下命令,
ssh-keygen -t rsa -C "yourmail@xxxl.com"
生成单个SSH Key时可以连续回车,不输入密钥文件名字和密码:
生成后会在【C:\Users\用户名.ssh】下产生两个文件,如图:
将公钥添加到gitlab或者GitHub上
测试
输入如下代码,见到下图即配置成功
ssh -T git@github.com
ssh -T git@gitool.glanway.com
转载自:https://www.cnblogs.com/Gent-Wang/p/7422433.html
Git安装以及配置SSH Key——Windows的更多相关文章
- git for windows配置SSH key
0. 前言 之前用过一段时间的git,后来迁移系统导致电脑中的git bash消失了,由于在上家公司版本管理用的svn,所以一直没有重新配置,目前工作中版本管理用的gitLab,后期计划将工作之外的精 ...
- Git配置SSH Key
最近看到很多人在配置Git时,遇到很问题,网上教程千篇一律.这儿自己单独记录一份. Git配置SSH Key 1.检查本机是否有ssh key设置,切换到.ssh目录 $ cd ~/.ssh 或cd ...
- git配置SSH Key,上传本地代码至github
git配置全局的name和email git config --global user.name "name" git config --global user.email &qu ...
- git配置ssh key并从github.com拉取repos
一.配置ssh key 1. 进入当前用户目录cd ~2. 生成ssh keyssh-keygen -t rsa -C "ABC@qq.com"ABC@qq.com账号必须是你登录 ...
- Jenkins配置git/github 插件的ssh key
参考来源:http://jingyan.baidu.com/article/a65957f4f0acc624e67f9bc1.html 方式一:本地需要生成公私钥文件,git/github中新建ssh ...
- Win7上Git安装及配置过程
Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...
- window下配置SSH连接GitHub、GitHub配置ssh key(转)
转自:http://jingyan.baidu.com/article/a65957f4e91ccf24e77f9b11.html 此经验分两部分: 第一部分介绍:在windows下通过msysGit ...
- window下配置ssh key
在windows下通过msysGit(Git for windows.Git Bash)配置SSH Keys连接GitHub. 1.检查本机是否有ssh key设置 $ cd ~/.ssh 或cd . ...
- 解决GitHub未配置SSH key提示错误信息
git push -u origin master Permission denied (publickey). fatal: Could not read from remote repositor ...
随机推荐
- 理解SqlMapConfig.xml文件
SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) typeAliases( ...
- vscode+TCC快捷编译c语言
1.安装vscode. 2.安装插件tcc.小巧,快速,符合ansi c, 法国大神级别程序员开发的编译器. 3.编写C代码,F10运行,即可得结果,对于验证一些语法很快捷,很方便.只需三步!!
- thinkphp5.1整合swoole
该方法仅作一种思路参考,实际应用也许会破坏thinkphp5.1的路由功能,并带来诸多问题,请读者尽量按照tp5.1官方的技术整合手段进行,按照tp5.1官方用户手册的方法可以实现swoole 风格的 ...
- 解决安装Anaconda后ZSH中使用的依然是系统自带的Python
最近重装了Anaconda,pip是Anaconda的pip,可是python是系统的python.如下图. 最开始检查了很久是环境变量的问题,其实不是.需要执行conda init zsh
- springAOP分析
参考https://www.cnblogs.com/liuyk-code/p/9886033.html 在springboot中自动引入了配置文件AopAutoConfiguration @Confi ...
- 菜鸟刷面试题(五、Java容器篇)
目录: java 容器都有哪些? Collection 和 Collections 有什么区别? List.Set.Map 之间的区别是什么? HashMap 和 Hashtable 有什么区别? 如 ...
- 【转】别人写的pe代码
// PEOperate.cpp: implementation of the PEOperate class. // //////////////////////////////////////// ...
- Luogu P3527 [POI2011]MET-Meteors 整体二分
思路:整体二分 提交:4次 错因:树状数组开的$int$ 题解: 二分操作序列,将仅用$[l,md]$即可满足要求的国家递归到左半边,将仅用$[l,md]$不能满足要求的国家,把他们的要求去掉左半边的 ...
- Python GUI编程(Tkinter)(一)
tk官网的教程学习: https://tkdocs.com/tutorial/firstexample.html 学习blog: https://www.cnblogs.com/aland-1415/ ...
- mac使用brew安装mysql报RROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
使用mac安装mysql安装完后运行 mysql -uroot -p 报了 ERROR 2002 (HY000): Can't connect to local MySQL server throug ...