打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何为 Git Shell 命令使用不同的私有 SSH 密钥
使用 SSH 密钥比密码更安全,这也适用于 Git。然而,与密码不同的是,更改 SSH 密钥或管理多个密钥更加困难。不过,通过编辑 SSH 配置,您可以使用不同的密钥连接到多个 Git 存储库。

SSH 如何与 Git 一起工作?

当您使用 SSH 而不是 HTTPS 时,Git 不仅仅使用您的私钥进行身份验证——它实际上建立了与远程服务器的真实 SSH 连接。它默默地执行此操作,因此您可能不知道它正在运行的命令,但是它在底层使用ssh 。
因为它使用您的默认ssh 命令,所以它就像您自己运行它一样,并使用您在~/.ssh/id_rsa。那么可能不是您想要的,所以要更改它,您需要编辑 SSH 的配置,而不是 Git 的配置。

制作新的 SSH 密钥

首先,您需要一个人来执行此操作,并且执行此操作非常容易。只需运行并使用 标志ssh-keygen 指定一个新的键名。-f这将创建一个私钥和一个带有.pub 扩展名的公钥。
ssh-keygen -t rsa -f ~/.ssh/github

编辑 ~/.ssh/config

SSH 的配置文件允许设置“Hosts”,它将根据您连接的内容进行匹配,并允许修改ssh使用的文件。
Host github  Hostname github.com  IdentityFile ~/.ssh/id_rsa.github  IdentitiesOnly yes

这将允许您对所有请求使用与主密钥不同的 SSH 密钥github.com,但是如果您想为单独的 Git 存储库使用两个不同的密钥怎么办?例如,一个用于您的工作帐户,一个用于您的个人帐户。
好吧,您需要使用相同的主机定义两个具有不同名称的配置:
Host personal  Hostname github.com  IdentityFile ~/.ssh/githubpersonal  IdentitiesOnly yes
Host work Hostname github.com IdentityFile ~/.ssh/githubwork IdentitiesOnly yes

通常这会导致配置冲突,但 Git 提供了一种解决方法。如果您有一个与本地存储库相关联的远程存储库(如 Github),请将其删除:
git remote remove origin

然后,不要添加github.com 为远程,而是将其替换为 SSH 配置文件中的主机名称。Git 将识别这一点,并使用此 SSH 主机进行连接。您可以为每个存储库设置单独的主机。
git remote add origin git@personal:username/repository.git

手动覆盖

如果你不想弄乱 SSH 配置,或者只是想暂时覆盖它,Git 也提供了GIT_SSH_COMMAND 环境变量。你可以
GIT_SSH_COMMAND='ssh -i ~/.ssh/github -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
您之后在同一 shell 会话中运行的任何 Git 命令都将使用该 SSH 命令,而不是默认命令。您还可以使用GIT_SSH.

来自:Linux迷

链接:https://www.linuxmi.com/git-shell-ssh.html
关注我们
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Git-多账户配置SSH免密登录
如何在Linux上搭建Git服务器?
同个电脑多个ssh key的配置使用(转)
一台电脑绑定两个git账号(GitHub和GitLab)
Windows下Git多账号配置,同一电脑多个ssh
使用SSH密钥连接Github【图文教程】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服