Git 需要密码,即使它设置了密钥验证

Git wants a password even though its setup with key authentication

我在使用 git 时遇到问题。当我尝试访问存储库时,git 会自动提示输入密码,即使在 git 服务器上禁用了通过密码进行身份验证。

我的ssh配置如下(hostname/repository已匿名):

host gitserver
  user gitolite
  hostname server.example.com
  identityfile ~/.ssh/gitolite

当我尝试克隆存储库时,由于密码请求而失败:

git clone gitolite@server.example.com:repository
Cloning into 'repository'...
gitolite@server.example.com's password: 

~/.ssh 文件夹及其内容设置了 700 权限,如所述here(我尝试过的许多事情之一)。

有人对此有解决方案吗?

编辑:

其他克隆尝试以完全相同的方式失败

git clone gitserver:repository
Cloning into 'repository'...
gitolite@server.example.com's password: 

编辑2:

ssh -Tv gitserver

产生以下输出:

debug1: Reading configuration data /home/username/.ssh/config
debug1: /home/username/.ssh/config line 1: Applying options for gitserver
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to server.example.com [1.2.3.4] port 22.
debug1: Connection established.
debug1: identity file /home/username/.ssh/gitolite type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/username/.ssh/gitolite-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-4
debug1: match: OpenSSH_6.0p1 Debian-4 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: RSA 00:df:a5:58:af:45:be:eb:62:65:07:5d:85:20:7c:98
debug1: Host 'server.example.com' is known and matches the RSA host key.
debug1: Found key in /home/username/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/username/.ssh/gitolite
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /home/username/.ssh/gitolite
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
gitolite@server.example.com's password:

如果要使用gitolite使用的私钥,sshurl必须是:

git clone gitserver:repository

这将使用 ~/.ssh/gitolite 私钥,在 gitolite 服务器上将您标识为 git。

找出密码提示的原因。

显然,gitolite 的早期命令之一本应在 git 中增加支持的文件大小,但无法 运行,这导致 [=17] 的以下关键更新=] olite 被困在队列中。

因此 ~/.ssh/known_hosts 从未在服务器端被 gitolite 更新,导致密钥下降。