Git使用[同一电脑多个账户ssh-key的管理]

发布于:2025-02-21 ⋅ 阅读:(15) ⋅ 点赞:(0)

同一电脑多个账户ssh-key的管理

现在遇到一个问题,我同一台电脑既要通过VPN访问内网的git也要访问对外释放的gitee,刚开始我直接把原来的SSH-key添加到内网的gitlab发现可以访问,但是后来再方位外网的gitee就出问题了,看来要换一种手段才行
本文引用:https://cloud.tencent.com/developer/article/1013213?pos=comment只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人!
这里通过"ssh-keygen -t rsa -C 2xxxxxx9@qq.com"命令生成两个SSH-key:
注意:这里一定不能够输入密码,直接使用空密码,否则后面每次克隆和提交代码都要输入密码(这个是和参考文章不一样的地方)

admin@cxxxxxxxxxg MINGW64 /e/download/syd8811-rope-skipping (master)
$ ssh-keygen -t rsa -C 2xxxxxxxx9@qq.com
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa): id_rsa_gitee
Enter passphrase for "id_rsa_gitee" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_gitee
Your public key has been saved in id_rsa_gitee.pub
The key fingerprint is:
SHA256:Sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx84hI8EVKiY 2xxxxxxxx9@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|    B=*          |
|   * % o         |
|E.xxxxxx         |
|o+ * % o         |
|  + = B S        |
|   + =           |
|  o + o          |
|   . +o*.        |
|     o+o=.       |
+----[SHA256]-----+

admin@cxxxxxxxxxg MINGW64 /e/download/syd8811-rope-skipping (master)
$ ssh-keygen -t rsa -C 2xxxxxxxx9@qq.com
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa): id_rsa_gitlab
Enter passphrase for "id_rsa_gitlab" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_gitlab
Your public key has been saved in id_rsa_gitlab.pub
The key fingerprint is:
SHA256:VxxxxxxxxxxxxxxxxrO9ES4 2xxxxxxxx9@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|   .xxxxxxx+     |
|  o .o.=oBo .    |
| . + .. *o.      |
|. o o. o         |
|.o . ...S        |
|= . .o. .        |
|o. ooE+o         |
| o+ o=...        |
|+ooooooo.        |
+----[SHA256]-----+

把生成的SSH-KEY放到网站中:
在这里插入图片描述
在这里插入图片描述

接下来配置config文件,因为内网是直接用IP访问的,我这里配置config文件如下:

# 配置gitee
Host gitee.com                 
    HostName gitee.com
    IdentityFile C:\\Users\\admin\\.ssh\\id_rsa_gitee
    PreferredAuthentications publickey
    User username1

# 配置gitlab
Host xxx.xxx.x.xxx
    HostName xxx.xxx.x.xxx
    IdentityFile C:\\Users\\admin\\.ssh\\id_rsa_gitlab
    PreferredAuthentications publickey
    User username2

在这里插入图片描述

接下来测试config是否配置成功:

admin@cxxxxxxg MINGW64 /e/download/syd8811-rope-skipping (master)
$ ssh -T git@gitee.com
Hi xxxxxxxxxxxxe(@xxxxxxxxxxxx)! You've successfully authenticated, but GITEE.COM does not provide shell access.

admin@cxxxxxxg MINGW64 /e/download/syd8811-rope-skipping (master)
$ ssh -T git@xxx.xxx.x.xxx
The authenticity of host 'xxx.xxx.x.xxx (xxx.xxx.x.xxx)' can't be established.
ED25519 key fingerprint is SHA256:zxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxw.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'xxx.xxx.x.xxx' (ED25519) to the list of known hosts.
Welcome to GitLab, @cxxxxxg!

配置好后就可以直接克隆工程了:

admin@cxxxxxxxxxg MINGW64 /e/download
$ git clone git@xxx.xxx.x.xxx:JiPengchao/xxxxxxxxs.git
Cloning into 'xxxxxxxxs'...
remote: Enumerating objects: 3712, done.
remote: Counting objects: 100% (3712/3712), done.
remote: Compressing objects: 100% (1910/1910), done.
remote: Total 3712 (delta 2132), reused 2988 (delta 1759), pack-reused 0
Receiving objects: 100% (3712/3712), 1.51 MiB | 1.50 MiB/s, done.
Resolving deltas: 100% (2132/2132), done.

admin@cxxxxxxxxxg MINGW64 /e/download
$ git clone git@gitee.com:sxxxxxxxe/syd8811-rope-skipping.git
Cloning into 'syd8811-rope-skipping'...
remote: Enumerating objects: 107, done.
remote: Total 107 (delta 0), reused 0 (delta 0), pack-reused 107
Receiving objects: 100% (107/107), 950.67 KiB | 288.00 KiB/s, done.
Resolving deltas: 100% (7/7), done.