Github细粒度个人访问令牌配置及推送Permission denied问题求助
解决Git Push到GitHub时Permission denied (publickey)的问题
核心问题
你当前配置的远程仓库地址是SSH格式(git@github.com开头),但个人访问令牌是给HTTPS格式的远程地址用的,所以更换令牌无法解决SSH认证失败的问题,得对应调整认证方式。
先纠正你之前命令里的错误
执行上传步骤时,你漏了关键参数:
git add后必须加.才能暂存当前文件夹下的所有文件:git add .git commit -m后必须填写提交信息:git commit -m "initial commit"(可替换成你自己的描述)
方案一:修复SSH认证(推荐,后续无需每次输密码)
检查本地是否已有SSH密钥对
打开终端执行:ls -la ~/.ssh如果能看到类似
id_ed25519(私钥)和id_ed25519.pub(公钥)的文件,跳过下一步;如果没有,生成新密钥。生成新的SSH密钥
执行命令(替换成你的GitHub注册邮箱):ssh-keygen -t ed25519 -C "your-github-email@example.com"全程按回车默认即可,不需要设置密码(如果要设也可以)。
将公钥添加到GitHub账户
- 复制公钥文件内容:执行
cat ~/.ssh/id_ed25519.pub,复制输出的全部文本 - 登录GitHub,进入「Settings」→「SSH and GPG keys」→「New SSH key」
- 随便填个Title,把复制的公钥粘贴到Key输入框,点击「Add SSH key」
- 复制公钥文件内容:执行
测试SSH连接
执行:ssh -T git@github.com如果输出
Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.就说明认证成功,此时再执行git push -u origin master即可。
方案二:改用HTTPS地址+个人访问令牌
如果不想折腾SSH,直接切换到HTTPS方式:
- 删除原有的SSH远程地址
git remote remove origin - 添加HTTPS格式的远程地址(替换成你的仓库地址)
git remote add origin https://github.com/[你的用户名]/[仓库名].git - 执行push,此时会提示输入用户名和密码:
- 用户名填你的GitHub账户名
- 密码填你新生成的细粒度个人访问令牌
内容的提问来源于stack exchange,提问作者Faizanm0389
相关产品推荐
相关产品推荐

