ssh-key 与 git账户配置以及多账户配置
单用户情况:
ssh-add id_rsa
如果出现Could not open a connection to your authentication agent的错误,就试着先用以下命令:
1
2
|
ssh-agent bash ssh-add id_rsa |
添加完之后 登陆Github 点击 网页右上侧的 Account Setting 按钮 - 选择 ssh-keys 点击Add SSH Key ,在title中输入名字,然后将公约即id_rsa.pub添加到ssh-key处。
在git bash的命令行中输入
ssh -T git@github.com 如果能正常访问即可
1
2
3
4
|
$ ssh -T git@github.com Enter passphrase for key 'C:/Users/kunkun/.ssh/github.rsa' : Hi kunkun01! You've successfully authenticated, but GitHub does not provide shel l access. |
多账户又分为两种情况
也可以参考老外写的 Git config for mutiply SSH keys
1、针对同一个服务器的同用户(比如 我平时开发开源的小东东,有的是一个账号是公司的账号对外开源项目用的,另外我自己也比较崇尚开源,所以自己也有了Github账号)
2,针对不同服务器的用户(现在pass平台 部署应用都是通过git来管理的,比如常见的Openshift,Heroku appfog等,在这里我也注册了账号)
在我们访问git服务器的时候,如果通过ssh的方式话,访问不同的服务器要使用不同的ssh-key。经过在第一步的过程中,在创建ssh-key的默认命名为id_rsa,如果使用不同的账户的,必须得给不同的key设置不同的名字,否则如果继续使用默认名字的话,会把之前的id_rsa覆盖掉。
具体操作如下 user2是我的另外一个Github账户
1、新建user2的SSH Key
1
2
3
4
5
|
#新建SSH key: $ cd ~/.ssh # 切换到C:\Users\Administrator\.ssh ssh-keygen -t rsa -C "mywork@email.com" # 新建工作的SSH key # 设置名称为id_rsa_work Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): id_rsa_work |
2、新密钥添加到SSH agent中
因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:
ssh-add ~/.ssh/id_rsa_work
如果出现Could not open a connection to your authentication agent的错误,就试着用以下命令:
ssh-agent bash
ssh-add ~/.ssh/id_rsa_work
(第二步 好像没什么作用)
3、修改config文件 将账户以及git服务器与对应的密钥关联。在~/.ssh目录下找到config文件,如果没有就创建:
touch config
然后修改如下: 我的config配置如下:
# 该文件用于配置私钥对应的服务器
# Default github user(first@mail.com)
Host github.com
HostName github.com
User git
IdentityFile C:/Users/Administrator/.ssh/id_rsa # second user(second@mail.com)
# 建一个github别名,新建的帐号使用这个别名做克隆和更新
Host github2
HostName github.com
User git
IdentityFile C:/Users/Administrator/.ssh/id_rsa_work
其规则就是:从上至下读取config的内容,在每个Host下寻找对应的私钥。这里将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名如:github2,那么原地址是:git@github.com:funpeng/Mywork.git,替换后应该是:github2:funpeng/Mywork.git.
4、用记事本打开新生成的~/.ssh/id_rsa2.pub文件,将里面的内容添加到GitHub后台。
可不要忘了添加到你的另一个github帐号下的SSH Key中。
5、测试:
1
2
3
|
$ ssh -T git@github.com Hi BeginMan! You've successfully authenticated, but GitHub does not provide shel l access. |
$ ssh -T github2
Hi kunkun01! You've successfully authenticated, but GitHub does not provide shell access.
6、应用
测试成功,那么我尝试在我的work目录下克隆我@126.com账号下的远程仓库。如下:
1
2
3
4
5
6
|
$ git clone github2:kunkun01/Mywork.git Cloning into 'Mywork' ... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. Checking connectivity... done |
如果你只是通过这篇文章中所述配置了Host,那么你多个账号下面的提交用户会是一个人,所以需要通过命令git config --global --unset user.email
删除用户账户设置,在每一个repo下面使用git config --local user.email '你的github邮箱@mail.com'
命令单独设置用户账户信息
ssh-key 与 git账户配置以及多账户配置的更多相关文章
- git生成公钥public key并添加SSH key。git乌龟gerrit下推送git【server sent :publickey】
一.key 码云链接:http://git.mydoc.io/?t=180845#text_180845 博客链接: 方式一:https://blog.csdn.net/xb12369/article ...
- TortoiseGit的ssh key和Git的ssh key
情景模拟: 你使用Git+TortoiseGit对项目进行版本控制,本地库(自己电脑建立的.git)与远程库(如GitLab上建立)通信需要使用ssh验证,你用git生成公钥并保存到了Gitlab上, ...
- Git Gui、Ssh key的使用和ideaui配置使用Git解决冲突(下)
目的: 1.Git Gui的使用 2.Ssh key 介绍及使用 2.1小结:https 和 SSH 的区别 3.Idea配置使用并使用git 4.ideaui使用Git冲突问题解决 Git Gui的 ...
- git配置多个ssh key
随着工作的深入,我们通常都会有多个git账户.比如公司gitlab一个账户,github或gitee有一个账户.而平时我们又回通过 配置ssh公私钥认证的方式省去繁琐的登录远程仓库的操作,不同的git ...
- Git与GitHub学习笔记(七)Windows 配置Github ssh key
前言 SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户 ...
- git 配置免密上传,配置ssh key
1.windows 打开git bash 控制台,linux 直接打开命令控制台,输入 ssh-keygen 一直enter 下一步 2.生成的文件windows 存放在c://users 路径下,l ...
- Git秘钥生成以及Gitlab配置(附以下问题解决方法:Key is invalid Fingerprint cannot be generated)
在进行Git密钥配置时,总是提示: “The form contains the following errors:Key is invalidFingerprint cannot be genera ...
- 本地ssh key连接多个git账号
在开发过程中,可能需要在本地同时连接到多个gitlab账户,但是一个用户的ssh key只能连接到一个git账户,这就需要创建多个ssh key,分别连接到不同的账户.具体步骤如下: 1.生成ssh ...
- 「BUAA OO Pre」Git生成多个ssh key并连接GitLab仓库
「BUAA OO Pre」Git生成多个ssh key并连接GitLab仓库 Part 0 前言 写作背景 笔者在配置学校GitLab的ssh key时遇到一些问题,原因应为曾经配置过GitHub的s ...
- 设置 SSH Key 登录服务器和 Git 服务器
设置 SSH Key 登录服务器 通过 ssh 登录服务器,一直都是用的账号和密码,今天看到一篇文章说这样不安全,使用 ssh key 的方式登录则是更好的选择,因此,研究实践了一下,并记录在这里. ...
随机推荐
- Leetcode: Longest Palindromic Substring. java
Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...
- [CentOS]CentOS/RedHat/Fedora的Proxy设定(yum,wget,,rpm)
yum 「/etc/yum.conf」 proxy=http://proxy.xxx.com:8080/ wget 「/etc/wgetrc」 http_proxy=http://proxy.xxx. ...
- scenes & segues within storyboards
Scenes Scenes in a storyboard represent content shown within one screen in your application. A scene ...
- C# GDI在控件上绘图
本文以以在chart控件上和窗体上画矩形为例子 不多解释了,代码很简单. 还有一些童鞋要别的源码,给我发邮箱吧 using System; using System.Collections.Gener ...
- codeforces Round #258(div2) D解题报告
D. Count Good Substrings time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- android手势事件 快速移动 长按触摸屏 按下触摸屏,并拖动
/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float vel ...
- android startActivityForResult的用法
有时候我们需要把A activity提交数据给B activity处理,然后把结果返回给A 这种方式在很多种情况需要用到,比如我应用的程序需要有拍照上传的功能. 一种解决方案是 我的应用程序 〉调 ...
- WIN7 下 Qt Creator 安装 QWT
WIN7 下 Qt Creator 安装 QWT 环境:WIN7 +QT Creator2.6.2 1.下载QWT源代码 qwt-6.1-rc3.zip 2 编译QWT open projects- ...
- 关于解决 The processing instruction target matching "[xX][mM][lL]" is not allowed
在处理和保存XML文件时,出现The processing instruction target matching "[xX][mM][lL]" is not allowed 错误 ...
- Triangular Sums
描述 The nth Triangular number, T(n) = 1 + … + n, is the sum of the first n integers. It is the number ...