多个Git服务器时,就没法用默认 id_rsa
密钥文件名了,容易产生冲突。
在连接多个 Git 服务器且使用不同的账号时,你可以为每个服务器生成不同的 SSH 密钥对,并使用 SSH 配置文件来管理这些密钥的使用。具体步骤如下:
为每个账号生成不同的 SSH 密钥
你可以为每个 Git 服务器或账号生成一个单独的 SSH 密钥对,确保文件名不冲突。例如:
# 为第一个服务器生成密钥
ssh-keygen -t rsa -C "[email protected]" -b 4096 -f ~/.ssh/id_rsa_server1
# 为第二个服务器生成密钥
ssh-keygen -t rsa -C "[email protected]" -b 4096 -f ~/.ssh/id_rsa_server2
# 为第三个服务器生成密钥
ssh-keygen -t rsa -C "[email protected]" -b 4096 -f ~/.ssh/id_rsa_server3
-f ~/.ssh/id_rsa_server1
表示将密钥保存为指定的文件名,避免默认 id_rsa
密钥文件名的冲突。
配置 SSH 客户端使用不同的密钥
生成完密钥后,配置 ~/.ssh/config
文件以指定不同的 Git 服务器使用相应的 SSH 密钥。
编辑或创建 ~/.ssh/config
文件:
# 配置第一个服务器
Host git-server1
HostName git.server1.com
User git
IdentityFile ~/.ssh/id_rsa_server1
# 配置第二个服务器
Host git-server2
HostName git.server2.com
User git
IdentityFile ~/.ssh/id_rsa_server2
# 配置第三个服务器
Host git-server3
HostName git.server3.com
User git
IdentityFile ~/.ssh/id_rsa_server3
~/.ssh/config
是当前用户的 SSH 配置文件。它主要用于为 SSH 客户端定义一系列的配置规则,简化连接不同的服务器时的设置。
User git
指定要用于 SSH 连接的用户名为git这个账户。SSH 连接需要一个用户名。像 GitHub、GitLab 这样的 Git 服务器会统一使用 git 作为 SSH 连接的默认用户名,所有用户都通过该用户名连接服务器。Git 服务器通过 SSH 密钥识别用户的身份,而不是依赖用户输入的用户名。
使用配置连接 Git 服务器
在 ~/.ssh/config 文件中,Host 部分定义了一个别名。你可以使用这些别名来克隆或推送代码:
# 克隆第一个服务器上的仓库
git clone git@git-server1:path/to/repo.git
# 克隆第二个服务器上的仓库
git clone git@git-server2:path/to/repo.git
通过这种方式,每个 Git 服务器连接时都会自动使用相应的 SSH 密钥。
将公钥添加到 Git 服务器
你需要将生成的每个 SSH 公钥(即 .pub 文件)添加到对应的 Git 服务器的账号设置中。例如,将 id_rsa_server1.pub
添加到 Git 服务器 1,将 id_rsa_server2.pub
添加到 Git 服务器 2 等。
这样设置后,你就可以用不同的账号连接多个 Git 服务器了。
标签:git,密钥,Git,SSH,服务器,ssh From: https://www.cnblogs.com/ghj1976/p/18404078/duogit-fu-wu-qi-de-bu-tongssh-mi-yao-dui-pei-zh