快捷搜索:  汽车  科技

git怎么连接到github(Git配置多个github账号免密登录)

git怎么连接到github(Git配置多个github账号免密登录)在.ssh目录下创建config 文件,git通过这个文件才知道哪个私钥去对应哪个公钥ssh-keygen -t rsa -C "777097006@qq.com" -f ~/.ssh/github_rsa复制公钥配置到github平台里面一路回车后,同样在文件夹中看到了生成的Github私钥gitlab_rsa和公钥gitlab_rsa.pub公钥 即.pub文件可以直接用文本打开,内容粘贴到github的Settings -> SSH and GPG keys -> New SSH Key,Title随便起,自己能认出来即可,Key里面填写复制的.pub里的内容同样步骤操作github平台

一、背景

作为一名出色的开发工程师,目前互联网代码托管平台众多同时有些平台已不支持账号和密码的直接gitbash操作。在我们托管平台多项目多,比如公司用的gitlab、而同时也参加一些开源项目在GitHub、gitee等代码托管平台上;那么如何利用手中的一台开发机,同时支持多个代码托管平台的代码免密进行代码提交拉取等操作呢?这篇文章告诉你答案。以下以MacOS为例。

二、步骤在用户目录下的.ssh目录下生成ssh免密登录公钥和私钥
  • 打开终端Terminal,进入Termina默认是用户目录(~),执行以下命令:

cd ~/.ssh ssh-keygen -t rsa -C "github邮箱地址" -f ~/.ssh/gitlab_rsa

-t 指定生成rsa类型的秘钥

-C 指定该秘钥注释以便查阅

-f 指定生成秘钥的名字,可以不指定该参数,默认就会生成2个文件:私钥id_rsa,公钥id_rsa.pub。由于需要生成两对私钥公钥,因此需要指定-f,否则生成两次后,私钥公钥会覆盖。

git怎么连接到github(Git配置多个github账号免密登录)(1)

一路回车后,同样在文件夹中看到了生成的Github私钥gitlab_rsa和公钥gitlab_rsa.pub

将公钥配置到对应的gitlab账号中

公钥 即.pub文件可以直接用文本打开,内容粘贴到github的Settings -> SSH and GPG keys -> New SSH Key,Title随便起,自己能认出来即可,Key里面填写复制的.pub里的内容

git怎么连接到github(Git配置多个github账号免密登录)(2)

git怎么连接到github(Git配置多个github账号免密登录)(3)

同样步骤操作github平台

ssh-keygen -t rsa -C "777097006@qq.com" -f ~/.ssh/github_rsa

复制公钥配置到github平台里面

git怎么连接到github(Git配置多个github账号免密登录)(4)

git怎么连接到github(Git配置多个github账号免密登录)(5)

三、创建config文件

在.ssh目录下创建config 文件,git通过这个文件才知道哪个私钥去对应哪个公钥

vim config

#自己的github账号配置 Host github.com port 22 User git HostName github.com AddKeysToAgent yes UseKeychain yes PreferredAuthentications publickey IdentityFile ~/.ssh/github_rsa #公司的gitlab账号配置(HostName为公司的gitlab地址) Host gitlab.huolala.cn port 22 User git HostName gitlab.huolala.cn AddKeysToAgent yes UseKeychain yes PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab_rsa

config文件部分参数含义,仅做记录

Host:可以看作是一个你要识别的模式,对识别的模式,配置对应的主机名和ssh文件

Port:自定义的端口。默认为22,可不配置

User:自定义的用户名,默认为git,可不配置

HostName:真正连接的服务器地址

PreferredAuthentications:指定优先使用哪种方式验证,支持密码和秘钥验证方式

IdentityFile:指定本次连接使用的密钥文件

AddKeysToAgent:是否自动将 key 加入到 ssh-agent,值可以为 no(default)/confirm/ask/yes。如果是 yes,key 和密码都将读取文件并加入到 agent ,就像 ssh-add。其他人分别是询问、确认、不加入的意思。添加到 ssh-agent 意味着将私钥和密码交给它管理,让它来进行身份认证。

UseKeychain:ssh密钥的密码存储在钥匙串中

四、测试ssh-key是否连通

ssh -T git@github.com ssh -T git@gitlab.huolala.cn

ssh -T git@github.com Hi yuncopy! You've successfully authenticated but GitHub does not provide shell access.

成功的情况返回如上所示。

猜您喜欢: