即使使用密钥身份验证进行设置,Git也需要密码

时间:2016-10-05 11:28:47

标签: git ssh gitolite

我使用git时遇到了问题。当我尝试访问存储库时,git会自动提示输入密码,即使在gitserver上禁用了auth via password。

我的ssh配置如下(主机名/存储库是匿名的):

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

当我尝试克隆repo时,由于密码请求,它失败了:

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

〜/ .ssh文件夹及其内容使用here所描述的权限700进行设置(我尝试过很多事情之一)。

任何人都有解决方案吗?

修改

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

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

EDIT2:

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:

2 个答案:

答案 0 :(得分:1)

如果你想使用gitolite使用的私钥,ssh url必须是:

git clone gitserver:repository

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

答案 1 :(得分:1)

找出密码提示的原因。

显然,gitolite的早期命令之一被认为会增加git中支持的文件大小,因此无法运行,导致gitolite的关键更新被卡在队列中。

因此,服务器端的gitolite永远不会更新~/.ssh/known_hosts,导致密钥丢失。