【Git】一个主机上Git同时配置两个GitHub账号


【Git】一个主机配置多个GitHub账号(Windows,MacOS,Linux都适用)

1. 引言

我开始的需要求是投稿论文的时候由于是匿名审稿,而我又需要上传源代码,所以打算把代码提交到GitHub上,匿名审稿不能用暴露自己个人信息的账号,所以就新建了一个账号,但是当我commit的时候发现提交人依然是自己之前的账号信息,而当我push的时候出现no permission,所以就需要配置一下新账号的信息

我的环境是 windows 10,之前已经有了github账号,该账号的ssh已经配置,之前使用https和ssh都可以push,但是新账号没有配置所以没办法提交

下面我的方法使用ssh方式提交代码,需要配置新账号的公钥和私钥

2. 配置.ssh文件

2.1 在.ssh文件夹目录下面生成公钥和私钥

windows中.ssh文件的路径为:C:\Users\用户名\.ssh
生成公钥和私钥的命令为:ssh-keygen -t rsa -f id_rsa_new,然后一直按回车就可以了,这个时候会在ssh文件夹目录下面生两个文件(公钥和私钥文件),如下图(其中以.pub结尾的文件是公钥,没有后缀的是私钥,config是自己创建的配置文件,know_hosts好像没用?):
.ssh dir

2.2 将公钥复制粘贴到github的SSH and GPG keys中

  • 首先创建进入github的setting页面,然后点击SSH and GPG keys,新建一个SSH keys
    SSH
  • 然后随便去一个名字,将生成的**.pub公钥**粘贴到下面:
    SSH Add

    3. 将私钥添加到本地的git账户中

    3.1 添加两个私钥到本地git账户

    ssh-agent bash
    ssh-add id_rsa_github	# 之前已有的github账号信息
    ssh-add id_rsa_new		# 新生成的账号信息

    其中ssh-agent bash(或eval $(ssh-agent))会启动一个进程在内存里管理这些私钥,可以把它理解成一个私钥管理中心
    添加之后可以使用ssh-add -l命令查看一下是否添加成功

ssh-add

3.2 创建config文件

自己在ssh文件夹新建一个txt文件,然后重命名为config,具体内容如下:
config
config文件中部分参数含义:

# Host: 主机别名
# HostName: 托管平台域名地址,如github.com
# IdentityFile : 指明上面User对应的identityFile路径
# User: 托管平台用户名
# Port: 端口号,可不填(如果不是默认22号端口则需要指定)
# PreferredAuthentications publickey

4. 测试是否连通

使用ssh -T测试一下:记住前面设置的hostname
ssh -T
出现 “Hi ……” 就说明新账号的公钥和私钥都配置成功了

5. 使用新账号提交代码

5.1 新建仓库

首先在新建的文件夹中初始化仓库: git init .

5.2 设置新仓库的用户信息

设置新账号的用户信息,因为你的电脑中git账号信息都是之前的,所有的仓库建立之后的账户信息都是默认之前的,所以需要在新仓库中设置新的用户名和邮箱,具体命令如下:

git config user.name "userName"       # 你的用户名
git config user.email "email address" # 你的邮箱地址

5.3 设置新仓库的地址

之前都是配置ssh,所以这里添加仓库的ssh地址就可以(当然https地址也可以),修改ssh地址的hostname为config文件中设置host就可以了

git remote add ssh [URL]

对于你的新账号,这里的URL比如可以是:git@host:username/repository_name.git (就是将下图中的github.com改成config文件中你新账号的hostname)
SSH url

5.4 提交代码

最后就可以使用新账号的信息提交代码了,什么git add,git commit 都可以,最后git push ssh master即可


参考:https://blog.51cto.com/u_4160094/2912836


码字不易,如果对你有帮助,求三连支持!


文章作者: PengShuai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 PengShuai !
评论
  目录