新电脑,git pull origin 要求输入密码。

7

在我的新电脑上,我成功地设置了git、putty.exe和ssh密钥等。

然后我执行了以下操作:

git pull origin

然后在命令提示符处,它要求输入密码。

我不知道它需要什么密码,而且在几次尝试失败后,它还要求我的服务器密码。

它要求输入:

blahblah@serveradmin.com password:

发生了什么事?

(我的git存储库托管在共享的Unix ISP上)

我已经设置了pageant来使用我的私钥,并弹出一个窗口让我输入密码。这就是我的旧电脑上的工作方式,然后当我打开git-bash并执行“git pull origin”时,它可以正常工作,而不需要询问任何问题。

更新 II

所以让我总结一下这里发生了什么:

我在办公室的电脑(Windows 7)(桌面)上有完全相同的设置,并且可以正常工作,而不需要问我任何问题。在使用git之前,我只需要运行一个.bat文件来加载pageant.exe:

C:\putty\pageant.exe "E:\code\pg_pk.ppk"

然后执行 git pull origin 命令就可以正常工作,不需要输入任何密码。我在我的笔记本电脑上也遇到了这个问题,在安装了 Windows 7 后,它的表现和我的办公电脑一样,但现在即使 pageant.exe 运行(我可以在任务栏中看到它,并且密钥已加载),它仍然要求我输入密码。因此,今天我将 .bat 文件和整个 /putty 文件夹复制到了我的笔记本电脑上,但仍然无法正常工作,当我输入 git pull origin 命令时,它仍然要求我输入密码。(两台计算机上运行的 git 版本相同)真的很困惑,可能是什么原因呢?
5个回答

4

从您的问题中并不清楚您是否已经设置了Git来使用PuTTY。您的环境变量内容是什么?

应该将其设置为plink.exe的完整路径。更好的做法是:如果您还使用TortoiseSVN或TortoiseHg,则将设置为它们的. TortoisePlink已被修改为不从标准输入读取,而是弹出一个对话框窗口,如果出现问题。Git重定向标准输入,因此,如果例如您的服务器IP地址发生更改,而plink要求您键入yes以确认,那么您将无法实际键入任何内容。 (您将不得不手动调用plinkputty,然后说“是”,它们将保存在注册表中。) TortoisePlink将弹出一个Yes/No对话框。


我有一个.bat文件,在使用Git-Bash之前,我会点击它,其中包含:c:\putty\pageant.exe "e:\code\pg_pk.ppk"。 - Blankman
这在我的办公电脑上可以运行,并且在我的笔记本电脑上也可以运行,但是现在当我在笔记本电脑上安装了Windows7后,它就无法工作了?(我的办公电脑是W7) - Blankman
@Blankman:这仍然没有回答问题,即您是否设置了Git以实际使用 PuTTY。如果您设置了Git使用OpenSSH,那么您可以随时启动Pageant,但OpenSSH并不关心Pageant。所以,我重申一遍:您的GIT_SSH环境变量的内容是什么? - Jörg W Mittag
Jorg,我不记得曾经需要设置GIT_SSH,但我可能忘了?我该如何设置环境变量?我只需将其指向plink.exe还是还需要将其指向我的密钥? - Blankman
1
谢谢,它可以运行。我输入了TortoisePlink.exe的完整路径(包括路径)。例如:C:\Program Files\TortoiseGit\bin\TortoisePlink.exe - Manitra Andriamitondra
TortoisePlink.exe is so much better than Putty/plink.exe. It finally pops up a window asking for my password, whereas plink.exe errors out with fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. - konyak

2

你的SSH密钥需要输入密码。

为了解决这个问题,你可以使用ssh-keygen在新机器上重新创建一个密钥,然后保存在Git源中。


我已经设置了,当我点击我的启动pageant的.bat文件时,嗯...非常奇怪! - Blankman

0

我建议你再次检查一下你的SSH密钥——看起来它没有正确地发送你的身份信息。


0

我发现Pageant有时候不起作用。在我看来,使用带空密码的命令行ssh客户端设置它要容易得多。从记忆中:

  1. 使用git bash生成公钥/私钥:

    ssh-keygen -t RSA -C email@address

不要指定密码。

  1. 上传%USERPROFILE%.ssh\id_rsa.pub的内容

  2. Git应该可以正常工作,包括Windows命令行、git bash、tortoise、git extensions等。


0

我也遇到了这个问题。奇怪的是,对我有用的不是通过TortoiseGit创建存储库,而是通过git init创建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接