Git生成多个ssh-keygen

作为新时代的开发者,大家一般会拥有自己的Github工程。同时公司又提供单独gitlab服务器,所以经常会遇到需要在同一设备下配置多个ssh key的情况,下述会阐述如何进行设置操作:

直接上手

第一步:生成指定名称的秘钥

$ ssh-keygen

git-ssh-keygen.png
首先 ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),然后它会要求你输入两次密钥口令。如果你不想在使用密钥时输入口令,将其留空即可(直接回车)。

需要注意的是这里必须输入指定的名称,不能使用默认名称,否则会相互覆盖(这是配置多个key的重点),如:id_rsa_idss

第二步:配置config文件

找到key的生成地方,如我的是/Users/ligang/.ssh,创建config文件(如果已存在,无需创建)。添加如下内容:

Host 192.168.0.45
    IdentityFile ~/.ssh/id_rsa.idss
    User ligang@xxx.com
字段说明
Host远程主机地址
IdentityFile私钥的文件路径及文件名称
User用户
Port远程主机上连接的端口号
HostName要登录的真实主机名。数字IP地址也是允许的

需要注意的是,默认的id_rsa并不需要配置!

第三步:复制新生成的公钥到服务器

git-ssh-pub
登录github或相关gitlab,进入相关的ssh添加页面(如,github添加地址为SSH and GPG keys),追加上述信息。

第四步:修改相关用户配置

如果不对用户相关配置修改,会默认以 --global配置的用户信息进行提交,所以需要进入指定文件夹,进行配置,覆盖全局的相关配置信息。

$ git config user.name "your name"
$ git config user.email "your email"

注意:不要加--global,否则会覆盖默认配置。
至此,大功告成,在不同的工程下互相不再冲突,可以直接获取或提交代码!

相关说明

秘钥信息

Git 服务器都使用 SSH 公钥进行认证,为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。

用户信息

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

git-config-user.png

上述就是在当前web工程中使用新的用户信息覆盖了全局配置的用户信息(重复的变量名,会使用后者)!
再次强调,如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

  • git config --list:查看配置信息
  • git config <key>:查看某一项的配置信息

参考地址:

回答: 在使用git时,有时候我们需要配置多个ssh,比如公司的sshgithub的ssh。重新生成ssh-key会导致原来的github上的ssh失效,所以我们需要设置多个ssh。首先,我们可以使用ssh-keygen命令生成不同的ssh-key。比如,我们可以生成一个公司用的SSH-Key和一个github用的SSH-Key生成公司用的SSH-Key的命令是:ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/gitee_id_rsa,生成github用的SSH-Key的命令是:ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa。接下来,在~/.ssh目录下新建一个config文件,并添加相应的配置信息。比如,我们可以添加以下内容到config文件中: # gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa 这样,我们就可以在使用git时,根据需要选择不同的ssh进行操作了。 #### 引用[.reference_title] - *1* [git配置多个ssh](https://blog.csdn.net/RQ997832/article/details/124638707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [git创建多个SSH-Key](https://blog.csdn.net/qq_29235677/article/details/122616611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Git配置多个SSH-Key](https://blog.csdn.net/lzqxz_/article/details/127365660)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋飛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值