Python 如何在windows子进程中通过ssh运行git fetch
我有一些代码需要定期(在Windows机器上)从github获取代码 当我手动拉取时,我使用GitBash,我已经为我检查的repos运行了ssh密钥,所以一切都很好。但是,当我尝试在python子流程中运行相同的操作时,我没有GitBash提供的ssh服务,并且无法对repo进行身份验证 我应该如何从这里开始。我可以想出几个不同的选择:Python 如何在windows子进程中通过ssh运行git fetch,python,windows,git,github,ssh,Python,Windows,Git,Github,Ssh,我有一些代码需要定期(在Windows机器上)从github获取代码 当我手动拉取时,我使用GitBash,我已经为我检查的repos运行了ssh密钥,所以一切都很好。但是,当我尝试在python子流程中运行相同的操作时,我没有GitBash提供的ssh服务,并且无法对repo进行身份验证 我应该如何从这里开始。我可以想出几个不同的选择: 我可以恢复使用https://fetches。这是有问题的,因为我获取的repo使用双因素身份验证,并且将在无人参与的情况下运行。有没有办法从命令行访问具有2
"C:\Program Files (x86)\Git\bin\sh.exe" -c "C:/Program\ Files\ \(x86\)/Git/bin/ssh-agent.exe; C:/Program\ Files\ \(x86\)/Git/bin/ssh.exe -t git@github.com"
产生
SSH_AUTH_SOCK=/tmp/ssh-SiVYsy3660/agent.3660; export SSH_AUTH_SOCK;
SSH_AGENT_PID=8292; export SSH_AGENT_PID;
echo Agent pid 8292;
Could not create directory '/.ssh'.
The authenticity of host 'github.com (192.30.252.129)' can't be established.
RSA key fingerprint is XXXXXXXXXXX
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/.ssh/known_hosts).
Permission denied (publickey).
paramiko
来建立连接吗?在我看来,这只是为了ssh’ing到远程终端。有没有办法让它提供git.exe可以使用的ssh连接因此,如果有人曾经这样做过,或者有更好的选择,我将不胜感激。git bash设置了
HOME
环境变量,允许git查找ssh密钥(在%HOME%/.ssh
)
您需要确保python进程具有相同的路径或定义相同的路径。如“”中所述,您需要将
HOME
设置为%USERPROFILE%
(或者,在python中,设置为os.path.expanduser(“~”
)。成功了,谢谢!正确设置HOME变量使其运行