我这里有一个特定的问题,可能是客户问题。但是,我收到服务器错误。所以请仔细阅读,也许你会同意我这是一个非常奇怪的问题,希望你能帮我解决它!:)
以下是我的情况:
我在家中安装了Git和Gitolite服务器,并使用了密钥验证功能。我的私钥和公钥经过验证,工作正常,直到上周。现在在我的客户端计算机#1上,我无法从我的Git服务器推送/拉取任何引用。
我尝试使用完全相同的存储库(安装在同一个驱动器上)使用相同的密钥,但使用我的笔记本电脑,我的服务器将接受密钥...
我尝试卸载/重新安装Git,生成其他密钥对,重新检查我的SSH配置,重新启动我的服务器服务,但没有任何作用。当我在DEBUG模式下检查我的SSH日志时,我几乎无法获得有关错误的任何详细信息:
Jul 28 06:46:28 git-server sshd[5100]: debug1: Forked child 19124.
Jul 28 06:46:28 git-server sshd[19124]: Set /proc/self/oom_adj to 0
Jul 28 06:46:28 git-server sshd[19124]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
Jul 28 06:46:28 git-server sshd[19124]: debug1: inetd sockets after dupping: 3, 3
Jul 28 06:46:28 git-server sshd[19124]: Connection from xx.xx.xx.xx port 53847
Jul 28 06:46:28 git-server sshd[19124]: debug1: Client protocol version 2.0; client software version PuTTY_Local:_Jun__3_2012_14:48:17
Jul 28 06:46:28 git-server sshd[19124]: debug1: no match: PuTTY_Local:_Jun__3_2012_14:48:17
Jul 28 06:46:28 git-server sshd[19124]: debug1: Enabling compatibility mode for protocol 2.0
Jul 28 06:46:28 git-server sshd[19124]: debug1: Local version string SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze1
Jul 28 06:46:28 git-server sshd[1002]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Jul 28 06:46:28 git-server sshd[1002]: debug1: session_by_channel: session 0 channel 0
Jul 28 06:46:28 git-server sshd[1002]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Jul 28 06:46:29 git-server sshd[19124]: debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-1024
Jul 28 06:46:29 git-server sshd[19124]: debug1: Checking blacklist file /etc/ssh/blacklist.RSA-1024
Jul 28 06:46:29 git-server sshd[19124]: debug1: temporarily_use_uid: 1001/1001 (e=0/0)
Jul 28 06:46:29 git-server sshd[19124]: debug1: trying public key file /home/gitolite/.ssh/authorized_keys
Jul 28 06:46:29 git-server sshd[19124]: debug1: fd 4 clearing O_NONBLOCK
Jul 28 06:46:29 git-server sshd[19124]: debug1: restore_uid: 0/0
Jul 28 06:46:29 git-server sshd[19124]: debug1: temporarily_use_uid: 1001/1001 (e=0/0)
Jul 28 06:46:29 git-server sshd[19124]: debug1: trying public key file /home/gitolite/.ssh/authorized_keys
Jul 28 06:46:29 git-server sshd[19124]: debug1: fd 4 clearing O_NONBLOCK
Jul 28 06:46:29 git-server sshd[19124]: debug1: restore_uid: 0/0
**Jul 28 06:46:29 git-server sshd[19124]: Failed publickey for gitolite from xx.xx.xx.xx port 53847 ssh2**
Jul 28 06:46:29 git-server sshd[19124]: debug1: do_cleanup
现在我认为我的服务器运行良好,因为我已经在其他两个客户端位置测试了我的Putty密钥,一切正常。也许是我的工作站在发送我的Putty密钥时遇到了麻烦。如果它是客户端问题,这里是我的电脑规格:
提前谢谢!
答案 0 :(得分:1)
检查公钥是否格式如下:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA5k6P+EKZ/G8+YT8kpHUmyp2d+4S/1kIAqPQcIt+qjpf9i0v9pwWCJdgYhiwD18pjUL2tM0D6zofKF3mQJdJbW22yAqBQ/YmswEHcH+1/QxHxaYHvXxaqakgvFcWW3DZ/ShsgWfJyhw7naKMWKcgAJJHPJfmAHtEWPLDhBAzpEQc=
并检查它是否是已知主机。
答案 1 :(得分:1)
毕竟这一次;问题解决了!
显然,注册管理机构的Putty问题会混淆ToirtoiseGit Windows客户端。我很惊讶这个案例在任何地方都没有记录。感谢我的朋友找到了解决方案。
因此,在Windows上,所有会话信息和Putty设置都位于此处
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY
通过删除“会话”和“SshHostKeys”文件夹,这些文件夹在之后自动重新生成,解决了问题。但我们不知道为什么。
更多的挖掘使我们得出的结论是,当通过putty界面更改默认设置时,它会导致Plink(ToirtoiseGit的putty代理),坚持Putty的默认设置,而不是专注于“自动 - 装入油灰钥匙“设置。
底线是
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default Settings
我希望这个解决方案也会帮助别人! :)
答案 2 :(得分:0)
我在Windows上遇到了与PuTTY类似的问题,我在那里更改了用于对各种服务器进行身份验证的密钥。但是在我保存的一些会话中,它仍然有一条原始密钥文件的路径,不再有效。
解决方案是通过已保存的会话捕获并删除有问题的密钥文件 - 我认为它位于Connection / SSH / Auth
下