如何在一台电脑配置GitHub和gitlab的SSH

  在工作中,很多小伙伴在一台电脑上使用不止一个Git账号,例如:自己的个人的GitHub账号,公司的GitLab账号等。在代码 clone、pull、push时,如果使用HTTPS通信,那么git账号之间不会有冲突,但是每次都需要输入账号密码,较为繁琐。并且当代码库规模较大时,采用HTTPS方式,可能会出现超时不响应的情况,因此需要配置SSH。SSH在配置完SSH key后使用很方便,但同一台电脑上使用多个git账号会产生冲突,为此需要配置SSH以支持多账号。

第一步

在.ssh文件夹下创建一个config 文件(注意没有后缀)文件中大致可配置如下字段:

Host:用来替代将要连接的服务器地址。当ssh的时候如果服务器地址能匹配上这里Host指定的值,
	则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配
	置的所有自定义配置来覆盖默认的`ssh_config`配置信息。
Port:自定义端口
User:用户名
HostName:真正连接的服务器地址
PreferredAuthentications:指定优先使用哪种方式验证,支持密码和秘钥验证方式
IdentityFile:指定本次连接使用的密钥文件

该文件的主要作用就是指明各个git帐号对应的User以及IdentityFile的文件位置。

在该文件中添加如下文件内容

# gitlab
Host gitlab
  HostName git.**.com
  IdentityFile ~/.ssh/id_rsa
  
# github
Host github.com
  HostName ssh.github.com
  User xxx@163.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_github_rsa
  Port 443
第二步

1、按照公司Git代码仓库文档生成密钥对,并添加秘钥。

2、按照GitHub的生成秘钥的文档进行秘钥生成:

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

在需要输入文件名时输入 id_github_rsa 来生成GitHub秘钥对。

Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]

然后按照GitHub的文档,来添加秘钥

https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

检查是否成功:

ssh -T git@github
注意

网上有些资料使用如下配置:

# github
Host github
  HostName github.com
  IdentityFile ~/.ssh/id_github_rsa

我在使用该配置时报错

ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
说明我们配置的 Port 443 端口没有生效,因此要采用如下配置

Host github.com
  HostName ssh.github.com
此外,如果你配置错误将出现如下错误
ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.
通过跳板机登录

  某些公司可能处于安全考虑会设置跳板机,通过跳板机来访问服务器,此时需要设置 ssh/ssh_config 文件。

Host name
ForwardAgent yes

并把专用密钥添加到ssh-agent的高速缓存中 .ssh/config 配置 ForwardAgent 字段,并且不设 PreferredAuthentications 字段。

# test
	Host test
	  HostName ip/hostname
	  User xxx@163.com
	  IdentityFile ~/.ssh/id_test_rsa
	  ForwardAgent yes
	  Port 443
Tips :如果找不到文件夹文位置可以使用 where(Windows下)或whereis(Linux下)来查找,如果 .ssh 文件夹不存在,请自行在用户目录下建立。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要同时配置GitLabGitHubSSH,你可以按照以下步骤进行操作: 1. 打开终端并进入.ssh文件夹,可以使用以下命令: ``` cd ~/.ssh ``` 2. 查看是否已经存在id_rsa_gitlab和id_rsa_github的公钥文件,可以使用以下命令: ``` ls id_rsa_gitlab.pub ls id_rsa_github.pub ``` 3. 如果公钥文件不存在,你需要生成新的SSH密钥对。可以使用以下命令来生成: ``` ssh-keygen -t rsa -C "your_email@example.com" ``` 这会在.ssh文件夹下生成一个新的SSH密钥对,并且会要求你提供一个文件名和密码。 4. 复制id_rsa_gitlab.pub的内容,并将其添加到你的GitLab帐户SSH密钥设置。可以使用以下命令复制内容: ``` cat id_rsa_gitlab.pub ``` 5. 复制id_rsa_github.pub的内容,并将其添加到你的GitHub帐户SSH密钥设置。可以使用以下命令复制内容: ``` cat id_rsa_github.pub ``` 6. 配置SSH config文件,以便区分GitHubGitLab。可以使用以下命令编辑config文件: ``` nano ~/.ssh/config ``` 然后按照以下格式添加配置信息: ``` # GitHub Host github.com HostName ssh.github.com User your_github_email@example.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github Port 443 # GitLab Host gitlab.com HostName gitlab.com User your_gitlab_email@example.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab ``` 注意替换your_github_email@example.com和your_gitlab_email@example.com为你自己的GitHubGitLab邮箱。 回答完问题后的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值