自上周以来,我的命令行git无法正常工作,我记得的是我将一个本地文件夹初始化为git版本控制,并为其添加一个远程git引用。然后我的git无法推或拉。它显示:
git clone git@gitlab.xxx.com:xxx/myproj.git myproj
Cloning into 'myproj'...
Received disconnect from 192.168.xxx.xxx: 2: Too many authentication failures for git
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
奇怪的是,我在JetBrain Idea中的版本控制工作正常,它仍然可以拉动或推动那个无法拉入命令行的项目。
我之前已将id_rsa.pub添加到gitlab,现在我再次重新添加它,但它不起作用。
我的ssh调试信息
ssh -v git@gitlab.xxx.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to gitlab.xxx.com [192.168.xxx.xxx] port 22.
debug1: Connection established.
debug1: identity file /Users/abc/.ssh/id_rsa type -1
debug1: identity file /Users/abc/.ssh/id_rsa-cert type -1
debug1: identity file /Users/abc/.ssh/id_dsa type -1
debug1: identity file /Users/abc/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5*
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: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA d7:11:d8:62:a6:30:1d:4a:c7:f1:99:bd:ba:54:de:60
debug1: Host 'gitlab.corp.com' is known and matches the RSA host key.
debug1: Found key in /Users/abc/.ssh/known_hosts:127
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,hostbased
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn0
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn6
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn1
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn2
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn5
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn8
Received disconnect from 192.168.100.218: 2: Too many authentication failures for git
abc@LiuzhMacbook:~/.ssh$
abc@LiuzhMacbook:~/.ssh$ ls
authorized_keys id_rsa known_hosts tmp/
abc@LiuzhMacbook:~/.ssh$ rm known_hosts
abc@LiuzhMacbook:~/.ssh$ ssh -v git@gitlab.corp.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to gitlab.corp.com [192.168.100.218] port 22.
debug1: Connection established.
debug1: identity file /Users/abc/.ssh/id_rsa type -1
debug1: identity file /Users/abc/.ssh/id_rsa-cert type -1
debug1: identity file /Users/abc/.ssh/id_dsa type -1
debug1: identity file /Users/abc/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5*
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: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA d7:11:d8:62:a6:30:1d:4a:c7:f1:99:bd:ba:54:de:60
The authenticity of host 'gitlab.corp.com (192.168.100.218)' can't be established.
RSA key fingerprint is d7:11:d8:62:a6:30:1d:4a:c7:f1:99:bd:ba:54:de:60.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.corp.com,192.168.100.218' (RSA) to the list of known hosts.
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,hostbased
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn0
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn6
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn1
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn2
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn5
debug1: Authentications that can continue: publickey,password,hostbased
debug1: Offering RSA public key: /Users/abc/.ssh/id_rsa.cn8
Received disconnect from 192.168.100.218: 2: Too many authentication failures for git
答案 0 :(得分:7)
您可以使用其他ssh网址来引用所需的正确公钥/私钥 在HOME / .ssh中添加一个名为config的文件:
Host mygitlab
Hostname gitlab.xxx.com
User git
IdentityFile ~/.ssh/id_rsa.gitlab
IdentitiesOnly yes
并更改您的网址:
git clone mygitlab:xxx/myproj.git myproj
这样,您就可以避免使用ssh的每个键来执行的默认ssh行为。
答案 1 :(得分:5)
答案 2 :(得分:3)
首先设置你的ssh密钥。
如果我们的密钥设置正确 - 请尝试重新启动ssh-agent
eval $(ssh-agent)
您应该看到进程的PID,并且您将加载r键。
要手动添加密钥,请使用:ssh-add
。这将从您的默认.ssh
文件夹
答案 3 :(得分:0)
最后 - 主机的原始重启工作正常,但想知道究竟发生了什么......
答案 4 :(得分:0)
在linux上运行
以下对我有用(我使用gitlab):
eval $(ssh-agent -s)
ssh-add ~/.ssh/<ssh_directory>
ssh -T git@gitlab.com
答案 5 :(得分:0)
对我来说,问题是我在 .ssh 文件夹中有很多旧密钥。所以,只需删除它们,一切正常。