首页 > 其他分享 >多Git服务器的不同SSH密钥对配置

多Git服务器的不同SSH密钥对配置

时间:2024-09-09 10:37:19浏览次数:8  
标签:git 密钥 Git SSH 服务器 ssh

多个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

相关文章

  • Jenkins+Github+Nginx实现前端项目自动部署
    前言最近在搭建一个自己的网站,网站框架搭好了要把项目放到服务器运行,但是每次更新网站内容就要手动部署一次,实在很麻烦,于是就想搭建一套自动化部署的服务。看了一些案例最后选用现在比较主流的Jenkins+Github+Nginx的方案来搭建,于是跟着教程去做,看了很多教程其实不是太......
  • GitHub每周最火火火项目(9.2-9.8)
    项目名称:polarsource/polar项目介绍:polar是一个开源项目,它是LemonSqueezy的替代方案,并且具有更具优势的价格。该项目的目标是为开发者提供一种更好的选择,让他们能够在追求自己的热情和兴趣的同时,通过编码获得相应的报酬。通过使用polar,开发者可以享受到更实惠的价格......
  • GitHub每日最火火火项目(9.8)
    项目名称:polarsource/polar项目介绍:polar是一个开源的项目,它是LemonSqueezy的替代方案,并且具有更优惠的价格。这个项目的目标是让开发者能够在自己热爱的编码工作中获得报酬。它为开发者提供了一种新的选择,使他们能够以更低的成本实现自己的项目,并从中获得收益。通过......
  • Pipeline流水线通过git拉取Jenkinsfile报错 error: RPC failed; result=22, HTTP code
    Pipeline流水线通过git拉取Jenkinsfile报错error:RPCfailed;result=22,HTTPcode=404在学习共享库时使用通过git拉取jenkinsfile时,报错在排查gitlab服务状态,网络通讯,防火墙规则以及Jenkins凭据均可以正常使用,最后发现的时在URL填写中缺少.git结尾所导致的,在了解后得知在......
  • 第一个机器学习Git项目
    Fork项目访问项目主页:Simple-CNN-CIFAR10点击右上角的“Fork”按钮,将该项目复制到自己的GitHub账户中。克隆项目到WSL2创建项目文件夹,并且选择项目克隆,在WSL2终端输入mkdir-p~/projectscd~/projects``gitclonehttps://github.com/Air-LWZ/pytorch-cifar.git`进入克......
  • Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
    前言今天大姚给大家分享一个.NET开源、免费的用于管理Git存储库的独立图形用户界面(GUI)工具,它还与Windows资源管理器和MicrosoftVisualStudio(2015/2017/2019/2022)集成:GitExtensions。Git新手指南:从基础到实践的全方位教程功能介绍图形用户界面:提供一个友好的......
  • 在VScode-SSH中Rust工程不能代码间跳转的原因
    今天正常使用VScode-SSH访问虚拟机,但是发现读代码的时候不能使用ctrl+左键的方式跳转,然后看到Rust-Analyzer(VScode的Rust语言插件)报错.2024-09-08T02:25:28.998500ZERRORfailedtofindanyprojectsin[AbsPathBuf("/home/winddevil/App")]2024-09-08T02:25:29.002582Z......
  • 【Git】在JetBrains系列的IDE中使用Git(一)
    【Git】在JetBrains系列的IDE中使用Git(一)文章目录【Git】在JetBrains系列的IDE中使用Git(一)1.将文件添加到git仓库的暂存区2.将文件提交到git仓库的本地仓库3.分支4.总结我们利用我上一个博文【Ruby】Web框架rubyonrails初识(MVC架构初理解)中创建的项目作为......
  • VsCode+WSL2+Python3+git机器学习环境安装
    安装VsCode,添加WSL扩展插件用管理员权限打开PowerShellwsl--install此命令将启用运行WSL并安装Linux的Ubuntu发行版所需的功能wsl--set-version<distroname>2命令将替换为要更新的Linux发行版的名称,如wsl--set-versionUbuntu2会将Ubuntu设置为使用WSL2......
  • 如何使用 Git 和 SSH 将项目推送到 GitHub
    目录1.前提条件2.安装Git3.生成SSH密钥生成SSH密钥的步骤:添加SSH密钥到SSHAgent:4.将SSH密钥添加到GitHub5.配置Git用户信息6.将本地代码推送到GitHub1.初始化本地Git仓库2.添加远程仓库3.添加文件并提交4.推送到GitHub7.常见问题及......