git配置ssh

1.首先设置git的全局user name和email

$ git config --global user.name "ygtzz"
$ git config --global user.email "ygtzz@123.com"

2.进入.ssh目录(没有就新建一个)

Windows cd C:/Users/userName/.ssh
Mac cd ~/.ssh

3.终端中执行ssh-keygen生成key

$ ssh-keygen -t rsa -C “ygtzz@123.com”
(在windows上执行时候,要在git bash中执行ssh-keygen,在cmd中可能无法执行,
遇到ssh-keygen不是内部或外部命令,则要在**/Git/usr/bin目录下找到ssh-keygen.exe,
将**/Git/usr/bin路径添加到环境变量中)
按3个回车,密码为空

Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………

得到两个文件
私钥: id_rsa
公钥:id_rsa.pub

4.在github或gitlab上添加公钥

添加多个git账号支持(例如同时使用github和gitlab)

1.生成新的ssh key
进入.ssh目录,通过命令ssh-keygen生成ssh key,
在执行命令后,不要回车,第一步要确认key的文件名,可以输入一个与之前不同的名字
例如 id_rsa_github,其后两步,皆回车,则会生成两个文件

私钥:id_rsa_github
公钥: id_rsa_github.pub

将公钥添加到github上

2.在.ssh下新建config文件,在其中添加配置

# gitlab
Host gitlab
HostName gitlab.com
User ygtzz

IdentityFile ~/.ssh/id_rsa  //windows: IdentityFile C:\Users\xxx\.ssh\id_rsa

# github
Host github
HostName github.com
User ygtzz
IdentityFile ~/.ssh/id_rsa_github //windows: IdentityFile C:\Users\xxx\.ssh\id_rsa_github

注意:此处Host是HostName的别名,在git clone 地址的时候会使用host的来判别key,进行下载。例如:git@github.com/ygtzz/lazyload.git项目,在配置下,必须使用

git@{Host}/ygtzz/lazyload.git(即git@github/ygtzz/lazyload.git)地址去下载,git才能根据config找到对应的rsa文件。因此,建议Host和HostName保持一致,这样clone

时候就不用修改下载地址,直接可以下载。下面是一个支持github,gitlab,码云三个git端的配置文件(已验证可用):

#gitee
Host git.oschina.net
HostName git.oschina.net
User ygtzz
IdentityFile ~/.ssh/id_rsa_gitee #gitlab
Host git.xxx.com
Hostname git.xxx.com
User mengweif
IdentityFile ~/.ssh/id_rsa_gitlab #github
Host github.com
HostName github.com
User ygtzz
IdentityFile ~/.ssh/id_rsa

3.执行ssh-agent让ssh识别新的私钥

ssh-add ~/.ssh/id_rsa_new

该命令如果报错:Could not open a connection to your authentication agent.无法连接到ssh agent,则可执行ssh-agent bash命令后再执行ssh-add命令:

ssh-agent bash
ssh-add ~/.ssh/id_rsa_new

以后,在clone或者add remote的时候,需要把config文件中的host代替git@remoteaddress中的remoteaddress。

4.在git的工作目录中,设置本地的用户名和邮箱

$ git config --local user.name "github用户名"
$ git config --local user.email "注册邮箱"

如果不设置用户名,则能正常提交,但提交的用户名会是global设置的用户名

参考:https://my.oschina.net/csensix/blog/184434

https://www.jianshu.com/p/89cb26e5c3e8

git生成ssh key和多账号支持的更多相关文章

  1. git生成ssh key及本地解决多个ssh key的问题

    git生成ssh key及本地解决多个ssh key的问题 ssh是一种网络协议,用于计算机之间的加密登录.ssh原理及应用可参考: SSH原理与运用(一):远程登录 生成ssh key步骤 这里以配 ...

  2. Git 生成SSH Key

    背景:服务器是LINUX系统(centos7),使用GitLab管理git代码库.各个客户端通过sourcetree 工具,采用SSH获取.提交代码.使用SSH的方式需要公钥和私钥.下面介绍秘钥的生成 ...

  3. Git - 生成ssh key步骤以及如何clone所有的远程分支

    https://www.cnblogs.com/gongyuhonglou/p/6922721.html 2. 生成ssh key $ ssh-keygen -t rsa -C “邮箱”按3个回车,密 ...

  4. Git - 生成 ssh key for Mac

    终端: cd ~/ .ssh 生成 SSH KEY ssh-keygen -t rsa -C 你的油箱 前往以下目录找到生成好的 SSH KEY /Users/wzz/.ssh/id_rsa.pub

  5. git生成ssh key步骤并添加到github网站

    0: 查看是否已经有了ssh密钥 执行命令:cd ~/.ssh 如果没有密钥则不会有此文件夹,有则备份删除 1:使用 Git Bash生成新的ssh key ssh-keygen -t rsa -C  ...

  6. ubuntu git生成ssh key (公钥私钥)配置github或者码云

    Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...

  7. git生成ssh key 避免每次push都要输入账号密码

    第一步:生成public/private rsa key pair在命令行中输入ssh-keygen -t rsa -C "your_email@example.com" 默认在这 ...

  8. git生成SSH key

    使用https:// 提交GitHub上的私有项目时,需要每次都输入帐号和密码,比较麻烦. 比如我自己的笔记本,在push的时候我可不想每次都输入这些. 那就使用SSH吧,这个需要在GitHub的帐号 ...

  9. GIT生成 SSH Key步骤

    //设置user.name和email 提交到git之后会显示用户名(在随意一个目录打开git-bash执行就行)Administrator@DESKTOP-BP3H0HS MINGW64 /d/mi ...

随机推荐

  1. OSG的组成结构

    OSG的组成结构 核心结构 OSG的功能类采用“命名空间+类名称”的形式来命名.命名空间的命名方式为:第一个单词小写,后继单词的首字母大写,例如osg.osgUtil.osgViewer等:类的名称则 ...

  2. 【system.date】使用说明

    对象:system.date 说明:提供一系列针对日期类型的操作 目录: 方法 返回 说明  system.date.isDate( date_string )  [True | False]  判断 ...

  3. python3爬虫-快速入门-爬取图片和标题

    直接上代码,先来个爬取豆瓣图片的,大致思路就是发送请求-得到响应数据-储存数据,原理的话可以先看看这个 https://www.cnblogs.com/sss4/p/7809821.html impo ...

  4. 浅谈PCA

    最近在回顾PCA方面的知识,发现对于之前的很多东西有了新的理解,下面和大家分享下我的一些个人的理解 1.我们为什么要用PCA,它能解决我什么问题? PCA(Principal Component An ...

  5. POJ 2449 Remmarguts' Date(第k短路のA*算法)

    Description "Good man never makes girls wait or breaks an appointment!" said the mandarin ...

  6. 学霸系统ui部分软件发布说明

    一.版本新功能 1.搜索主页按钮 在学长的版本中,要想进入搜索主页,方法只有一个,就是在问答搜索结果页中点击链接进入搜索主页,这就使得用户很不方便.我们在学霸系统的主页增加了一个链接按钮,方便用户能够 ...

  7. 有关c#的学习笔记整理与心得

    [ 塔 · 第 一 条 约 定 ] 整理c#:Array Arraylist List Hashtable Dictionary Stack Queue等 Array 的容量是固定的,而 ArrayL ...

  8. C++第一次课堂作业 circle

    Github上的代码提交

  9. 内存转储文件调试系统崩溃bug

    百度百科:内存转储文件 内存转储是用于系统崩溃时,将内存中的数据转储保存在转储文件中,供给有关人员进行排错分析用途.而它所保存生成的文件就叫做内存转储文件. 内存转储文件也被称作虚拟内存,它是用硬盘里 ...

  10. Java中的线程的优先级

    Java 中线程优先级简介: 1. Java 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程. 按照线程的优先级决定应该调度哪个线程来执行. 2. 线程的优先级用数字表示, 范围从 1 到 ...