如何让GitHub CLI使用指定SSH密钥并对应特定GitHub账户?
解决GitHub CLI指定特定账户/SSH密钥的问题
用GitHub CLI原生多账户管理(推荐)
gh本身支持多账户切换,这是最省心的方式,不用折腾SSH配置:
- 查看当前登录账户:
gh auth status - 登录新账户(比如账户B):运行
gh auth login,跟着提示选择SSH认证,对应账户B的密钥,登录后该账户会成为默认账户 - 切换已登录的账户:
gh auth switch --account <账户B的用户名> - 不同目录用不同账户:在目标目录下执行
gh config set github_host github.com --local,然后在该目录下登录账户B,之后进入此目录时gh会自动使用账户B的配置
通过SSH配置绑定账户与密钥
如果必须通过SSH密钥指定,修改~/.ssh/config文件,为每个GitHub账户配置专属Host别名:
- 编辑
~/.ssh/config,添加以下内容:
# 账户A配置 Host github.com-A HostName github.com User git IdentityFile ~/.ssh/id_rsa # 替换为账户A的密钥文件名 # 账户B配置 Host github.com-B HostName github.com User git IdentityFile ~/.ssh/id_rsa_b # 替换为账户B的密钥文件名
- 创建账户B的仓库时,指定对应的远程主机:
gh repo create <仓库名> --remote github.com-B/<仓库名>
临时指定SSH密钥执行gh命令
如果只是临时使用某个密钥一次,通过环境变量临时指定:
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_b" gh repo create <仓库名>
内容的提问来源于stack exchange,提问作者J86
相关产品推荐
相关产品推荐

