PythonAnywhere配置Django时Git认证失败,API Token也无效
在PythonAnywhere中执行Git克隆仓库操作时遭遇认证失败,具体报错信息如下:
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/PixelXl81/django_starter.git/'
Traceback (most recent call last):
File "/home/Pixel/.local/bin/pa_autoconfigure_django.py", line 49, in
main(
File "/home/Pixel/.local/bin/pa_autoconfigure_django.py", line 31, in main
project.download_repo(repo_url, nuke=nuke),
File "/home/Pixel/.local/lib/python3.10/site-packages/pythonanywhere/django_project.py", line 20, in download_repo
subprocess.check_call(['git', 'clone', repo, str(self.project_path)])
File "/usr/local/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['git', 'clone', 'https://github.com/PixelXl81/django_starter.git', '/home/Pixel/pixel.pythonanywhere.com']' returned non-zero exit status 128.
已尝试使用PythonAnywhere提供的API Token进行验证,但问题未解决。
- 明确Token用途:PythonAnywhere的API Token仅用于调用自身平台的API接口,不能用于Git仓库的身份认证,用它必然失败。
- 改用GitHub个人访问令牌(PAT):
- 在GitHub账号的设置页面生成PAT,勾选
repo权限(私有仓库必填,公开仓库建议勾选)。 - 在PythonAnywhere终端使用带PAT的URL克隆:
或者先配置Git凭证存储:git clone https://<你的GitHub用户名>:<你的PAT>@github.com/PixelXl81/django_starter.git
再执行普通克隆命令,当提示输入用户名时填GitHub账号名,密码填生成的PAT。git config --global credential.helper store
- 在GitHub账号的设置页面生成PAT,勾选
- 公开仓库可尝试SSH克隆:
- 在PythonAnywhere终端生成SSH密钥:
ssh-keygen -t ed25519 -C "你的注册邮箱" - 将
~/.ssh/id_ed25519.pub中的内容复制到GitHub账号的SSH密钥设置中。 - 使用SSH地址克隆仓库:
git clone git@github.com:PixelXl81/django_starter.git
- 在PythonAnywhere终端生成SSH密钥:
- 校验仓库地址:确认URL中的用户名、仓库名无拼写错误,比如
PixelXl81和django_starter是否与GitHub上的实际信息一致。
内容的提问来源于stack exchange,提问作者Alonzo Np

