【发布时间】:2022-06-10 19:17:38
【问题描述】:
我有多个 Git 帐户,一个是我个人使用的,一个是公司使用的。两个帐户来源都需要从我的笔记本电脑上激活。
第一,我生成了两个 ssh 密钥:
% ssh-keygen -t ed25519 -C "my@gmail.com" -f ~/.ssh/my
% ssh-keygen -t ed25519 -C "work@company.com" -f ~/.ssh/work
第二,使用 ssh-agent
% eval "$(ssh-agent -s)"
% ssh-add --apple-use-keychain ~/.ssh/my
% ssh-add --apple-use-keychain ~/.ssh/work
3、编辑 SSH 配置
触摸~/.ssh/config并编辑如下内容:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/my
IdentityFile ~/.ssh/work
# account of myself, my@gmail.com
Host my
HostName github.com
User my
IdentityFile ~/.ssh/my
# account of work, work@company.com
Host work
HostName github.com
User work
IdentityFile ~/.ssh/work
4、向我的 GitHub 帐户添加新的 SSH 密钥
5、确保 ssh-agent 正在运行并加载了这两个密钥
% ps -e | grep ssh-agent
% ssh-add -l
256 SHA256:RnbFaLfrSIX4Al134lkjaleiur1SMIz7+OFwx5I9RHVMewwo9eq my@gmail.com (ED25519)
现在我的问题是: 重新启动 macOS 后,只有一个 ssh 密钥,我必须通过以下命令手动激活另一个 ssh 密钥才能工作:
% ssh-add ~/.ssh/work
% ssh-add -l
256 SHA256:RnbFaLfrSIX4Al134lkjaleiur1SMIz7+OFwx5I9RHVMewwo9eq my@gmail.com (ED25519)
256 SHA256:QEWRrqpeowiufkndliuroqijr15u30491u3ojhjkrefaosdyflk work@company.com (ED25519)
并且我在处理工作存储库(如 ~/workcode)时无法切换到工作 ssh 密钥,但我可以找到 % git remove -v 响应正确,但得到错误信息时我运行% git push 如下:
ERROR: Permission to work/Test.git denied to my.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
请教我在为自己工作或为公司工作时如何切换到my 或work ssh 密钥。
谢谢。
【问题讨论】:
-
在这两种情况下,要使用的 ssh 帐户都应该是
git:User git。正如文档的the "testing" sction 中所建议的那样:通过运行测试您的 ssh 配置:ssh my/ssh work