一台电脑配置多个SSH KEY,多个用户身份提交代码

前言

当想在同一台电脑上用多个用户身份提交代码,例如:在公司电脑上用公司用户名提交代码,用私有用户名提交自己的代码到github上,可以使用下面的方法。

生成 SSH KEY

①执行命令ssh-keygen -t rsa -C your_email@example.com创建github对应的sshkey,命名为id_rsa_github

$ ssh-keygen -t rsa -C your_email@example.com
Generating public/private rsa key pair.
Enter file in which to save the key 
//下面内容()内是key生成路径,如果没有就在/Users/your_user_directory/下生成,:后面输入你的key的名称,如 id_rsa_github
(/Users/your_user_directory/.ssh/id_rsa):id_rsa_github 
//这里输入你的key密码,可以为空
Enter passphrase (empty for no passphrase): 
//再次输入密码
Enter same passphrase again:  

②再次执行命令ssh-keygen -t rsa -C your_anotheremail@example.com创建oschina对应的sshkey,命名为id_rsa_oschina(邮箱地址可以相同可以不同)

$ ssh-keygen -t rsa -C your_anotheremail@example.com
Generating public/private rsa key pair.
Enter file in which to save the key 
//下面内容()内是key生成路径,如果没有就在/Users/your_user_directory/下生成,:后面输入你的key的名称,如 id_rsa_oschina
(/Users/your_user_directory/.ssh/id_rsa):id_rsa_oschina 
//这里输入你的key密码,可以为空
Enter passphrase (empty for no passphrase): 
//再次输入密码
Enter same passphrase again:

③把上面得到的文件拷贝到git默认访问的.ssh目录下,如下图所示:
在这里插入图片描述

为不同网站应用各自的 SSH KEY

④在config文件中添加如下内容(如果没有config文件,则自己新建一个)
(注意:无后缀名,就是为了映射)
config

Host github.com
HostName github.com
User github
IdentityFile ~/.ssh/id_rsa_github   
 
Host git.oschina.net
HostName git.oschina.net
User oschina
IdentityFile ~/.ssh/id_rsa_oschina
 
...

Host
Host是可以随意起名的,但是需要注意的是,如果Host命名为 github而非github.com,那么在测试key时需要ssh -T git@github,而非git -T git@github.com。

Hostname
远程仓库实际的域名,或IP。

User
配置使用用户名(注意这里并不是提交commit信息中的用户名,而仅仅是这个key的用户名)

IdentityFile
这里是不同key的文件地址

Port
默认缺省是22端口,如果公司git服务器端口更改过,就需要在这里特别指定一下,否则ssh会以22端口去连接而被server端拒绝。

把对应的公钥上传到服务器

⑤把生成的公钥上传到需要配置的服务器上,如github对应的公钥id_rsa_github,打开复制全部,配置到网站上
在这里插入图片描述
另外一个公钥也需要这样配置到服务器上。

⑥执行测试命令测试是否配置成功

ssh -T git@gitlab.com

ssh -T git@github.com

出现welcome的字样表示成功了。
测试成功之后就可以在电脑上同时使用git多账号同时操作,互不影响了

注意:配置全局信息

如果之前执行过全局用户名配置信息

$ git config --global user.name "yourname"
$ git config --global user.email "your_email@example.com"

这个命令会在~/.gitconfig填入以下信息,之后可以直接在这个文件内修改commit提交用户信息:

[user]
  name = yourname
  email = your_email@example.com

当你配置有如上信息的时候,不管你往那个网站提交代码,都会默认用这个用户名和邮箱。

配置单独信息

$ cd your_project
$ git config user.name "yourname"
$ git config user.email "your_email@example.com"

这个命令会在项目目录下/.git/config填入以下信息,之后可以直接在这个文件内修改commit提交用户信息:

[user]
  name = yourname
  email = your_email@example.com

这里设置的姓名和邮箱地址会用在 Git 的提交日志中。
这样当你为项目单独配置commit提交用户信息后,此时项目提交就会用当前配置的用户信息,而不是之前的全局用户信息。

补救

当你用默认的全局用户名已经提交了项目,如在自己的私人github
上把公司的用户名和邮箱,提交到了自己私人项目上,那么下面的方法将会帮你补救,更改所有已经提交的用户信息,为你自己想要的正确用户信息:

git 更改现有提交记录中的用户名称和/或电子邮件地址

参考博客:
https://www.jianshu.com/p/149ee5b8916f
https://blog.csdn.net/weixin_34038652/article/details/89080609

发布了37 篇原创文章 · 获赞 6 · 访问量 4602
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览