如何在终端指定Git Pull的用户?SSH权限拒绝问题解决
解决Git拉取时Permission denied (publickey)问题及指定身份方法
首先明确:使用SSH地址(git@github.com:<repo>/<repo>.git)时,地址里的git是GitHub的SSH服务专用用户,不是你的GitHub账号名,没法直接通过修改这个部分指定用户。要关联到你的账号,得通过SSH密钥匹配,以下是具体解决方法:
1. 先验证SSH密钥是否有效
执行命令测试当前SSH连接:
ssh -T git@github.com
如果返回Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.说明密钥有效;如果还是Permission denied,先确认你的公钥已经添加到GitHub账户的SSH密钥列表中。
2. 临时指定密钥拉取
如果本地有多个SSH密钥,想临时用特定密钥拉取,执行:
GIT_SSH_COMMAND="ssh -i ~/.ssh/你的密钥文件名" git pull
替换~/.ssh/你的密钥文件名为实际的私钥路径,比如~/.ssh/id_rsa_mygithub。
3. 永久配置指定密钥
通过修改SSH配置文件,让特定GitHub远程仓库使用指定密钥:
- 编辑
~/.ssh/config文件(没有的话新建):
Host github-custom HostName github.com User git IdentityFile ~/.ssh/你的密钥文件名
- 修改本地仓库的远程地址:
git remote set-url origin github-custom:<repo>/<repo>.git
之后直接执行git pull,就会自动使用配置的密钥对应的身份。
额外检查项
- 确认本地ssh-agent已经加载了你的密钥:
先启动ssh-agent(如果没启动):
再加载密钥:eval "$(ssh-agent -s)"ssh-add ~/.ssh/你的密钥文件名
内容的提问来源于stack exchange,提问作者Allennick
相关产品推荐
相关产品推荐

