Github 多用户使用 SSH 与客户端连接

发布于 2022-07-02 13:11:43 字数 1786 浏览 1143 评论 0

Github 使用 SSH 与客户端连接。如果是单用户(first),生成密钥对后,将公钥保存至 github, 每次连接时 SSH 客户端发送本地私钥(默认 ~/.ssh/id_rsa)到服务端验证。 单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。

但是如果是多用户(first、second),我们在连接到 second 的帐号时, second 保存的是自己的公钥,但是 SSH 客户端依然发送默认私钥,即 first 的私钥, 那么这个验证自然无法通过。 不过,要实现多帐号下的 SSH key 切换在客户端做一些配置即可。

首先 cd 到 ~/.ssh 使用 ssh-keygen -t -rsa -C 'second@mail.com' 生成新的 SSH key:id_rsa_second,生成完后将新的 SSH public key 添加到 github。

ssh-keygen -t -rsa -C 'second@mail.com'

默认 SSH 只会读取 id_rsa,所以为了让 SSH 识别新的私钥,需要将其添加到 SSH agent

ssh-add ~/.ssh/id_rsa_second

该命令如果报错:Could not open a connection to your authentication agent. 无法连接到 ssh agent,可执行 ssh-agent bash 命令后再执行 ssh-add 命令。

完成以上步骤后在 ~/.ssh 目录创建 config 文件,该文件用于配置私钥对应的服务器。内容如下:

# Default github user(first@mail.com)
Host github.com
HostName github.com
User git
IdentityFile C:/Users/username/.ssh/id_rsa

# second user(second@mail.com)
Host github-second
HostName github.com
User git
IdentityFile C:/Users/username/.ssh/id_rsa_second

配置完成后,在连接非默认帐号的 github 仓库时,远程库的地址要对应地做一些修改, 比如现在添加 second 帐号下的一个仓库 test,则需要这样添加:

git remote add test git@github-second:second/test.git 
#并非原来的git@github.com:second/test.git

这样每次连接都会使用 id_rsa_second 与服务器进行连接。至此大功告成!

注意: github 根据配置文件的 user.email 来获取 github 帐号显示 author 信息, 所以对于多帐号用户一定要记得将 user.email 改为相应的 email(second@mail.com)。

参考 github 帮助文档:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文