github+gitlab ssh共存

本文档详细介绍了如何将GitHub项目从HTTPS提交方式转换为SSH提交方式,包括生成SSH密钥对、配置SSH key、更新GitHub设置以及修改远程仓库URL。这一过程旨在响应GitHub关于停用HTTPS提交的公告,确保代码的安全传输。

背景

本人
gitlab使用的是ssh提交
github使用的是https提交

动力

前两天github发了一个公告,说不再支持https方法了,可能是因为不安全
所以,我要把当前所有github项目的https转为ssh

方法

一、再次生成公钥、私钥

首先我们要保证有两个ssh,一个github的一个gitlab的,当然,你要是偷懒这两个用一个密钥那我无话可说,规范些的话就搞两个邮箱(公司的+自己的)。

我的 /.ssh文件夹已经有这三个文件了(当时配置gitlab时生成的)
在这里插入图片描述
所以,我们要生成,github的公钥

  git config --global user.name "你github的用户名"
  git config --global user.email "你github的邮箱"

这时候,我们跑到 .ssh文件夹下

ssh-keygen -t rsa -C "你的github账号对应的邮箱"

这时候提示你要输入公钥的名字,千万不要和gitlab的公钥名重复,我这里叫 github
在这里插入图片描述
密码继续回车(默认为空)


查看私钥
cat github.pub
在这里插入图片描述

二、私钥放到github远端

完事,将他添加到远端(github 私钥那里)

此时,你的 .ssh下是这样的
在这里插入图片描述

三、配置两种不同的ssh key

(1) 首先需要将密钥添加到SSH agent中,因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:

ssh-add ~/.ssh/github

(2)如果出现Could not open a connection to your authentication agent的错误,就试着用以下命令:

ssh-agent bash
ssh-add ~/.ssh/github

(3) .ssh文件夹下 创建config文件(没有后缀,只叫config),内容如下:

# github

Host github.com

    HostName github.com

    PreferredAuthentications publickey

    IdentityFile ~/.ssh/github

# gitlab (不配置config,默认走这里)

Host gitlab.com

    HostName https://git.guahao-inc.com

    PreferredAuthentications publickey

    IdentityFile ~/.ssh/id_rsa
四、验证是否配置成功

验证github

ssh -T git@github.com

提示 successfully就是成功了

五、github的 https转为ssh

查看远端地址,肯定是https的

git remote -v 

显示
https://github.com/fujinting/vue-react-node-blog.git

重设为

git remote set-url origin git@github.com:fujinting/vue-react-node-blog.git

再看一下,是否改过来了

git remote -v 

显示
git@github.com:fujinting/vue-react-node-blog.git

这时候,算是成功了,可以推拉代码了

### 配置本地环境与GitLab账户绑定 为了在本地配置与GitLab账户绑定,需要确保以下几点设置正确:本地的Git用户名邮箱与GitLab账户一致,同时可以通过SSH或HTTPS方式连接到GitLab服务器。以下是具体的配置方法: #### 1. 配置Git用户名邮箱 在本地计算机上设置Git用户名邮箱,以确保提交信息与GitLab账户匹配。使用以下命令完成配置[^4]: ```bash git config --global user.name "Your Name" git config --global user.email "your-email@example.com" ``` 这里的`your-email@example.com`必须与GitLab账户中绑定的邮箱一致[^1]。 #### 2. 验证当前配置 可以使用以下命令检查当前的全局用户名邮箱配置是否正确: ```bash git config --global user.name git config --global user.email ``` #### 3. 配置SSH密钥 为了通过SSH方式连接GitLab,需要生成SSH密钥并将其添加到GitLab账户中。 - **生成SSH密钥**: ```bash ssh-keygen -t rsa -b 4096 -C "your-email@example.com" ``` 将生成的公钥文件(通常位于`~/.ssh/id_rsa.pub`)内容复制到GitLab账户的SSH Keys设置中。 - **测试SSH连接**: ```bash ssh -T git@your-gitlab-server.com ``` 如果配置成功,会收到类似以下的消息: ``` Welcome to GitLab, @username! ``` #### 4. 使用HTTPS方式(可选) 如果选择通过HTTPS方式连接GitLab,需要确保SSL验证正常[^5]。如果遇到SSL证书问题,可以临时关闭SSL验证(不推荐用于生产环境): ```bash git config --global http.sslVerify false ``` #### 5. 克隆或推送项目 完成上述配置后,可以克隆GitLab上的项目或推送代码到远程仓库。例如: ```bash git clone https://your-gitlab-server.com/namespace/project.git # 或者使用SSH方式 git clone git@your-gitlab-server.com:namespace/project.git ``` #### 注意事项 - 如果本地已经配置了多个Git账户(如GitHubGitee等),可以通过创建独立的SSH密钥配置文件实现共存[^2]。 - 确保GitLab服务器的域名或IP地址正确,并且网络连接正常[^3]。 ### 示例代码 以下是一个完整的配置流程示例: ```bash # 配置Git用户名邮箱 git config --global user.name "Your Name" git config --global user.email "your-email@example.com" # 生成SSH密钥 ssh-keygen -t rsa -b 4096 -C "your-email@example.com" # 添加SSH密钥到GitLab账户 cat ~/.ssh/id_rsa.pub # 复制输出内容到GitLab SSH Keys设置中 # 测试SSH连接 ssh -T git@your-gitlab-server.com # 克隆项目 git clone git@your-gitlab-server.com:namespace/project.git ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值