【发布时间】:2021-09-12 21:48:16
【问题描述】:
我在 Gitea 上有一个私人 git 存储库。我已经为我的服务器设置了部署密钥,并且在服务器上我在C:\Users\harry\.ssh\id_ed25519中有相关的私钥
当我尝试直接git clone repo 时,它可以正常工作:
(venv) harry@DESKTOP-4NS8B70 d:\>git clone "ssh://git@git.myserver.com/my_username/my_package.git" my_package
Cloning into 'my_package'...
Enter passphrase for key '/c/Users/harry/.ssh/id_ed25519':
remote: Enumerating objects: 52, done.
remote: Counting objects: 100% (52/52), done.
Receiving objects: 100% (52/52), 10.18 KiB | 5.09 MiB/s, done.
Resolving deltas: 95% (20/21)00% (45/45), done.
remote: Total 52 (delta 21), reused 0 (delta 0)
Resolving deltas: 100% (21/21), done.
到目前为止,一切都很好!但是,当我尝试通过pip install -e "git+ssh://git@git.myserver.com/my_username/my_package.git#egg=my_package" 安装相同的软件包时,会导致错误:
(venv) harry@DESKTOP-4NS8B70 d:\>pip install -e "git+ssh://git@git.myserver.com/my_username/my_package.git#egg=my_package"
Obtaining my_package from git+ssh://****@git.myserver.com/my_username/my_package.git#egg=my_package
Cloning ssh://****@git.myserver.com/my_username/my_package.git to d:\my_app\venv\src\my-package
Running command git clone -q 'ssh://****@git.myserver.com/my_username/my_package.git' 'd:\my_app\venv\src\my-package'
git@git.myserver.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
WARNING: Discarding git+ssh://****@git.myserver.com/my_username/my_package.git#egg=my_package. Command errored out with exit status 128: git clone -q 'ssh://****@git.myserver.com/my_username/my_package.git' 'd:\my_app\venv\src\my-package' Check the logs for full command output.
当然,当我尝试使用以下条目pip install -r requirements.txt 时,也会发生同样的事情
-e "git+ssh://git@git.myserver.com/my_username/my_package.git#egg=my_package"
我的第一个想法是问题发生了,因为它不知何故没有询问Enter passphrase for key,但我不知道为什么!有什么想法可能出了什么问题?
【问题讨论】:
-
pip是非交互式程序,它阻止交互式子进程与用户交互。要解决此问题,您必须配置ssh以避免询问密码;从密钥中删除密码或设置ssh-agent。 -
这真的很有帮助!我通过 SSH 连接到我的服务器,所以我需要做的就是在那个 SSH 控制台中运行
start-ssh-agent。然后我就可以pip install。