2

我这里有一个可能是客户问题的特殊问题。但是,我收到服务器错误。所以请通读一遍,也许你会同意我的观点,这是一个非常奇怪的问题,希望你能帮助我解决它!:)

这是我的情况:

我在家里用 Git 和 Gitolite 服务器设置了一个使用密钥身份验证的设置。直到上周,我的私钥和公钥都经过验证并正常工作。现在在我的客户端计算机 #1 上,我不可能从我的 Git 服务器推送/拉取任何引用。

我已经尝试使用完全相同的存储库(安装在同一驱动器上)但使用笔记本电脑使用相同的密钥,并且我的服务器将接受该密钥......

我尝试卸载/重新安装 Git,生成其他密钥对,重新检查我的 SSH 配置,重新启动我的服务器服务,但没有任何效果。当我在调试模式下检查我的 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 密钥。如果这是客户问题,这里是我的电脑规格:

  • 英特尔 i7 3770 x64
  • Windows 7旗舰版
  • 16GB 内存

先感谢您!

4

3 回答 3

1

检查公钥的格式是否如下:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA5k6P+EKZ/G8+YT8kpHUmyp2d+4S/1kIAqPQcIt+qjpf9i0v9pwWCJdgYhiwD18pjUL2tM0D6zofKF3mQJdJbW22yAqBQ/YmswEHcH+1/QxHxaYHvXxaqakgvFcWW3DZ/ShsgWfJyhw7naKMWKcgAJJHPJfmAHtEWPLDhBAzpEQc=

并检查它是否是已知主机。

于 2014-02-13T12:35:19.373 回答
1

经过这么长时间;问题解决了!

显然,注册表的腻子问题使 ToirtoiseGit Windows 客户端感到困惑。我很惊讶这个案例在任何地方都没有记录。感谢找到解决方案的朋友。

所以在 Windows 上,所有会话信息和 Putty 设置都位于此处

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY

通过删除之后自动重新生成的“Sessions”和“SshHostKeys”文件夹,解决了这个问题。但我们不知道为什么。

更多挖掘使我们得出结论,当通过 putty 接口更改默认设置时,它会导致 Plink(ToirtoiseGit 的 putty 代理)坚持 Putty 的默认设置,而不是专注于“自动加载的 putty 键“ 环境。

底线是

  1. 如果您有这些症状,请清空位于HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default Settings
  2. 或者...根本不要在 Putty 中编辑/保存默认设置!!!

我希望这个解决方案也能帮助其他人!:)

于 2014-10-03T20:58:35.870 回答
0

我在 Windows 上遇到了类似的 PuTTY 问题,我更改了用于对各种服务器进行身份验证的密钥。但是在我保存的一些会话中,它仍然有指向原始密钥文件的路径,该路径不再有效。

解决方案是浏览保存的会话并删除有问题的密钥文件 - 我认为它在 Connection/SSH/Auth 下

于 2012-09-19T04:17:46.740 回答