git 指定提交密钥

背景:

多人协同办公时, 在集群或者测试机上会出现多个ssh 密钥, 这时我们使用ssh key 执行pull等操作就会出现问题, 解决这个问题的办法就是:提交时指定ssh密钥路径

参考: 链接1   链接2  链接3

以下操作前提: 生成ssh key 

 

第一种、指定ssh 密钥实现

一、 使用 ssh config 映射文件

在 ~/.ssh/ 文件下创建 config 文件,内容如下:

# gitlab user
 Host xxxxx                 # 别名
 HostName gitlab.com         # 仓库地址
 User git                    # 用户, 默认git
 IdentityFile ~/.ssh/id_rsa  # 你的私钥绝对路径

 

文件内容格式:
标签描述
Host 仓库主机,对应具体项目下的.git/config中的url中的主机名
HostName 仓库主机名称
User 用户名,对于 git 来说就是固定值 git
IdentityFile ssh 私钥 路径

 

如果是通过http pull 的先更改配置.git/config:

[remote "origin"]
  url = git@xxxxx:brandon/project-c.git

 

 

验证:

ssh -T xxxxx 

 

 

第二种:

找到git 的config文件  /etc/ssh/ssh_config 并编辑

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile  ~/.ssh/id_rsa
  •  ~/.ssh/id_rsa           你的密钥路径
  • ssh.github.com        代码仓库地址如:http://gitlab.alibaba.com/virtxxx/xxx.git 支取 gitlab.alibaba.com
  • github.com              自定义名称,用来代替仓库地址
  • user                        默认git

 

修改完成, 验证:

ssh -Tvv github.com

你应该看到:

 

 恭喜你成功了。

 

接着修改项目中.git/config 下的仓库地址为

# 原来
http://gitlab.alibaba.com/virtxxx/xxx.git

# 修改后
http://ssh.github.com/virtxxx/xxx.git

ssh 一样。

 

常见异常:

1、权限问题如图:

 

 

 解决:

  1. 修改.ssh 文件夹权限为 700: chmod 777  ~./.ssh
  2. 修改id_rsa 文件权限为 600: chmod 600  id_rsa

 

上图还有一个问题, 就是再ssh_config 中, 指定密钥文件的地方写成了.ssh 文件夹, 改正即可。

 

 

posted @ 2022-05-10 11:13  萤huo虫  阅读(741)  评论(0编辑  收藏  举报