如何使用多个 ssh 密钥 [重复]

2024-04-20

GitHub 用户,

我是 github 的新手,并且在 git 设置方面遇到一些问题。 我在 github 上有 2 个不同用户的帐户,并且我在系统上设置了 git 2 次

First /.ssh文件夹(像往常一样)(包含首先复制的 id_rsa 帐户)
Second /.ssh/新文件夹(包含复制到的 id_rsa 第二个帐户)

现在在推送时我如何在 ssh 密钥之间切换?

因为如果我想推送第二个帐户,它将使用 .ssh 密钥而不是 .ssh/new 并给我错误。

如果我在这里理解有误,请纠正我。

Thanks.


(我投票决定将其作为可能的重复项关闭,但无论如何我也可以添加类似的答案。)

使用 SSH 传输时,GitHub 会根据您用于身份验证的 SSH 密钥将您识别为用户。因此,您需要确保 git 对一个存储库使用一个 SSH 密钥,对另一个存储库使用另一个 SSH 密钥。

我假设:

  1. 您有一个名为的 GitHub 帐户user1,并且您已将与您的本地私钥对应的公钥添加到该帐户/home/whoever/.ssh/id_rsa。假设您有兴趣访问的存储库为user1 is user1/whatever在 GitHub 上。
  2. 您有第二个 GitHub 帐户,名为user2并且您已将与您的本地私钥对应的公钥添加到该帐户/home/whoever/.ssh/new/id_rsa。假设您有兴趣访问的存储库为user2 is user2/whatever在 GitHub 上。

处理这个问题的最简单方法是为每个存储库创建一个新的“远程”(即远程存储库的昵称),其中每个远程 URL 中的主机名实际上是您在其中设置的别名~/.ssh/config。 (如果该配置文件不存在,则必须创建它。)

例如,其中的一个条目~/.ssh/config文件可能如下所示:

Host github-as-user1
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/id_rsa

然后你可以添加一个名为gh-user1,比如说:

git remote add gh-user1 git@github-as-user1:user1/whatever.git

...然后如果你想推动你的master分支到存储库user1/whatever在 GitHub 上使用~/.ssh/id_rsa关键,你可以这样做:

git push gh-user1 master

为了以其他用户的身份进行推送(user2)到第二个存储库,您需要添加第二个别名~/.ssh/config文件。例如:

Host gh-as-user2
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/new/id_rsa

然后,要以不同的用户身份推送到第二个存储库,您可以执行以下操作:

git push gh-user2 master
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用多个 ssh 密钥 [重复] 的相关文章

  • 使用 GitHub 时防止将大文本文件添加到提交

    我们想要防止 非常大的文本文件 每个文件 gt 50MB 被提交到git代替git lfs 因为它们夸大了 git 历史 问题是 其中 99 大小差异的原因 这些是 YAML 文件 它们支持通过 Base64 编码进行二进制序列化 我们无法
  • 如何列出当前正在验证的拉取请求中更改的所有文件(在 VSTS 中)?

    我有一个 PR 验证版本 我想列出 PR 中更改的所有文件以及状态 源在每个构建上同步 因此 在合并 PR 更改之前 源位于修订版A 通常origin master 让我将 PR 合并提交指定为B 我当前的实现调用git diff tree
  • 如何解决 npm install 中的身份验证错误?

    在我的 package json 中 我有一个名为 somerepo git 的私人存储库 现在我通过 maven 在 buildserver bamboo 上运行 npm install 并收到此错误 ERROR npm ERR Comm
  • 如何使用 git-svn 使 svn:external 保持最新?

    将我的存储库视为 SVN 存储库 我得到 svn co http myrepo foo trunk foo foo bar baz gt http myrepo baz trunk 将其视为 Git 存储库 我得到 git svn clon
  • 让“git pull”在拉取不同分支时要求确认

    当同时处理许多项目和分支时 我偶尔会犯一些愚蠢的错误 比如拉入错误的分支 例如在分支上master I did git pull origin dangerous code并且有一段时间没有注意到这一点 这个小错误造成了很大的混乱 当我尝试
  • Git 二进制文件与 .gitattributes 中的 -diff

    在 gitattributes 中有以下等价内容 chm binary chm diff 我努力了 chm二进制文件 但恐怕它仍然可能尝试合并这些文件 是 diff更适合我打算做什么 另外 在提交给定类型的文件后 此设置是否适用 Thank
  • 在 github 上查找强制推送的提交者

    在我们的项目 托管在 GitHub 上 中 每隔一段时间就会有人意外强制推送 master 没有人知道是否这样做 我想找出是谁干的 以及背后有什么样的错误配置的工具或坏习惯 那么问题来了 如何识别进行强制推送的用户呢 当我拉动时 我看到这样
  • 克隆存储库时出现 Git 冲突复制错误

    我使用 dropbox 作为 git 存储库 现在由于同步中的一些问题 git 中存在一些冲突的副本 我该如何消除这种冲突 由于这种冲突 我无法克隆该存储库的内容 我在克隆存储库时遇到的错误是 Git 致命 参考格式无效 refs head
  • 为什么每次合并分支后我的 git log graph 都会多增长一行?

    我习惯使用git log oneline graph decorate all作为别名git ll在终端中查看提交图表 但是当我每次合并我的时 一个问题让我感到困惑develop to master 上面命令的输出可能是这样的 0d1bf7
  • “user-images.githubusercontent.com”中的图像是否有过期时间?

    我正在使用博客提供服务GitHub 页面 https pages github com 博客服务有很多图像文件需要上传 所以我需要一个存储图像的存储库 在搜索存储库时 我发现了一种使用 github issues 的方法 我首先捕获图像 然
  • 无法使用 File delete() 方法删除 git repo 中的 .pack 文件

    对于我正在编写的这个方法 我使用 jgit 库克隆一个 git 存储库 然后对这些文件执行一些操作 最后我想删除该存储库 我遇到的问题是 当我在 pack 文件 位于 git objects pack 中 上调用 delete 方法时 它无
  • Github README.md 和 readme.md - 如何删除其中一个?

    不知何故 我最终在 github 上有了 README md 和 readme md 现在这两者相互影响 所以我的 GitHub app 完全混乱了 Github网站没有任何文件删除功能 如何删除这些文件之一 只需删除其中一个文件并提交删除
  • 如何在保留历史记录的同时将 git 存储库重新设置为父文件夹?

    我有一个 git 仓库 foo bar baz具有大量的提交历史和多个分支 我现在想要 foo qux位于同一个仓库中 foo bar baz 这意味着我需要它们都位于植根于的存储库中 foo 但是 我想保留我所做的更改的历史记录 foo
  • 使用 Dropbox 作为跨多台机器的 git 工作目录 - 提交不能完美同步

    首先 我想强调这个问题与在 Dropbox 上托管我的中央存储库无关 而且我对使用 git 还很陌生 我能找到的其他涉及 Dropbox 和 git 的问题都没有真正回答我的问题 它们要么是关于使用 Dropbox 托管您的存储库 要么是关
  • Git 提交从 Windows 上的守护程序返回错误 docker/error 响应

    我正在为我的 Laravel 应用程序 BE 运行 docker 我对 readmeme md 文件进行了简单的更新 并尝试将此文件提交并推送到 git 当我尝试提交时 这就是我得到的 gt git c user useConfigOnly
  • Git:由于看似随机的合并,更改不断丢失

    我有一种感觉 这将是一个显而易见的答案 但我似乎无法解决 似乎发生的情况是 我向服务器提交 推送了一些更改 并且我的副本上的一切都显示正常 然后 另一位开发人员从同一分支的服务器中拉取 据我所知 据称看到了我的更改 进行一些修改 将它们提交
  • 错误:GitHub 目前无法显示这么大的文件 - 但该文件只有 1.06 MB [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库 拖放以及使用终端上的 Git 添加 提交 推送 在这两种情况下
  • Visual Studio 2013删除已删除的git分支

    我遇到这个问题 在 VS2013 中 当我从源创建一个新分支时 源分支的下拉列表列出了曾经创建的所有分支 这包括长期从本地存储库和远程 源存储库中删除的分支 如何删除已删除的分支 Visual Studio 将它们保存在本地缓存中 您可以从
  • 子 git 存储库作为主存储库的子集

    我正在寻找一种方法来设置 git 存储库 其中包括来自较大存储库的文件子集 并从该主存储库继承历史记录 我的主要动机是能够通过 GitHub 共享代码子集 我目前通过单个 git 存储库管理我的研究相关 主要是 Matlab 代码 代码本身
  • 忽略提交之间 git-diff 的*所有*空白更改

    我正在检查代码库并修复空白奇怪之处并通常纠正缩进等事情 并且我想确保我没有无意中进行任何其他更改 所以我正在做git diff w显示所有已更改文件中的差异 同时忽略空白差异 问题是这实际上并没有忽略all空白差异 至少是什么I认为仅仅是空

随机推荐

  • 如何在 dxdatagrid 中动态创建具有 dataType 的 dxi 列?

    我们正在开发一个角度应用程序 我必须在 dxdatagrid 中显示记录 每次模式都会不同 数据来自不同的表 想要添加 编辑记录 想要显示与每种数据类型对应的控件 请任何人帮助实现同样的目标 您可以使用该属性 columns 在你的dx d
  • 如何(以及为什么)使用显示:表格单元格 (CSS)

    我有一个网站very活动背景 我说的是 6 个左右不同的 z 索引 这里 2 个带有动画 我想要一个有内容的前景 但想要一个通向背景的 窗口 我遇到的一些问题 你不能在背景上 打洞 所以 我构建了一个包含 div 我们称之为 srminfo
  • 下载变压器模型以供离线使用

    我有一个训练有素的 Transformer NER 模型 我想在未连接到互联网的机器上使用它 加载此类模型时 当前会将缓存文件下载到 cache 文件夹 要离线加载并运行模型 需要将 cache 文件夹中的文件复制到离线机器上 然而 这些文
  • 临时显示其他选项卡时 UIRefreshControl 冻结(iOS 7)

    我的一个选项卡上有以下内容 void viewDidLoad super viewDidLoad self clearsSelectionOnViewWillAppear YES UIRefreshControl refreshContro
  • 我可以在外部 DLL 中使用 ASP.NET Session[] 变量吗

    我有两个项目 一个是 DLL 项目 其中包含我所有的逻辑和数据访问内容 另一个是 ASP NET 项目 它负责我的表单等 我有一点困惑 我想如果我将 System Web 命名空间引用添加到 DLL 项目中 我将能够引用 ASP NET 页
  • ios swift - 关闭导航控制器的根视图控制器

    我通过单击主视图控制器的按钮打开导航控制器 我以编程方式在导航控制器上创建一个左栏按钮项目 我想关闭导航控制器并返回到我的主控制器 我本质上是回到导航控制器的根视图控制器 我试过了 navigationController dismissV
  • 无效的源反射宏:has_many:through

    我有这样愤怒的联想 融资 gt 事件 gt 子项目 gt 项目 我想通过所有程序访问last financings 所以代码是 class Fcp lt Program has many fcp subprograms foreign ke
  • 对齐 Google 地图标记片段中的文本

    我希望片段中的字符串与中心对齐 另外 代码片段中的换行符 n 被转换为空格 有没有办法插入换行符 我的相关代码 GoogleMap map map addMarker new MarkerOptions position pos title
  • MediaPlayer 的状态更改侦听器

    这张图中有很多states http developer android com reference android media MediaPlayer html StateDiagram 但使用标准监听器我只能监听一些基本状态 那么是否可
  • Excel 不应用 HTML 中的 mso-number-format

    这是我的情况 我有简单的 Excel OOXML 文件 http www filedropper com excel 1通过 Web 查询连接到我的服务器 所有带有日期的单元格都具有 常规 水平对齐方式 无对齐方式 和 MM DD YYYY
  • 如何在 json 文件中插入现有的 php 字符串文字?

    我有一个 php 脚本 它通过使用访问 json 文件file get contents 在 json 文件中 我们声明了一个 php 变量 请让我知道是否有任何方法可以解析 json 文件中的 php 变量 下面是代码 测试 json r
  • 在django中批量创建模型对象

    我有很多对象要保存在数据库中 所以我想用它来创建模型实例 使用 django 我可以创建所有模型实例 MyModel data 然后我想把它们全部保存下来 目前 我有类似的东西 for item in items object MyMode
  • 如何获取 ActionMailer 的 after_action 过滤器中的操作名称

    在下面的课程中 如何获取当前操作名称 即email confirmation password reset 在 的里面after action打回来add mandril headers class UserMailer lt Action
  • 是否有同时支持 RSS 和 ATOM 的 PHP 提要阅读器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何跨多个域重用代码?

    我只是使用 Yii 框架构建了一个 CMS 框架 我想将 CMS 部署到多个域 home root www domain1 com home root www domain2 com home root www domain3 com ho
  • linux 多端口监听socket

    我正在用 C linux 编写一个多线程服务器应用程序 它必须侦听 2 个不同的端口号 例如侦听端口号 3000 和 4000 以便连接到它的不同客户端提供不同的功能 实际功能由工作人员执行 线程 主线程无限期运行并在新连接上产生新工作线程
  • 跨域属性的目的...?

    在图像和脚本标签中 我的理解是您可以访问其他域上的脚本和图像 那么什么时候使用这个属性呢 这是当您想要限制其他人访问您的脚本和图像的能力时吗 Images https developer mozilla org en US docs Web
  • 使用 java 构建 wsdl 的框架或工具

    JAVA中有没有什么优秀的工具来处理webservice或wsdl 是的 有一个标准化的API JAX WS http en wikipedia org wiki JAX WS 甚至集成到 Java 标准 API javax xml ws包
  • 延迟加载 Facebook Like 按钮脚本

    Google pagespeed 正在抱怨我的 facebook 之类的按钮脚本 我怎样才能推迟脚本 在初始页面加载期间解析了 45KiB 的 JavaScript 延迟解析 JavaScript 用于减少页面渲染的阻塞 http stat
  • 如何使用多个 ssh 密钥 [重复]

    这个问题在这里已经有答案了 GitHub 用户 我是 github 的新手 并且在 git 设置方面遇到一些问题 我在 github 上有 2 个不同用户的帐户 并且我在系统上设置了 git 2 次 First ssh文件夹 像往常一样 包