我遇到了一个有趣的问题,我从字面上不知道从哪里开始寻求解决它!
我们办公室的VCS机器正在运行gitweb,我的公钥在这台机器上很好。 我可以使用我的密钥从我的机器访问存储库,没有任何问题。
但是,如果我在任何types的远程shell,密钥身份validation不起作用! 回到密码authentication,但git用户configuration为没有密码,所以这是不好的!
我已经通过SSH到办公室的另一台机器,并从那里回到我的机器确认了这个问题。 另外,通过物理上使用另一台机器SSH到我的机器,甚至通过一个VPN访问我的机器从不同的networking。 在所有情况下,使用git服务器进行身份validation失败,尽pipe它们与我在本地运行的命令相同。
我的第一反应是gitosis(自动处理键)被错误地configuration。 它包括一些关键的附加安全选项:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
但是,这个问题仅限于我 – 其他机器似乎可以在没有问题的情况下进行身份validation,无论这个shell是远程的还是本地的,这表明这是我的SSHconfiguration错误。 我通过编辑/etc/ssh/sshd_config将默认端口从22改为了22,但是其他的都应该是默认值。 有人可能已经编辑了configuration,所以任何要注意的东西将不胜感激!
我的机器运行Ubuntu 9.04(显然,升级可能是一个解决scheme)。 真的,我只是在一个起点 – 谷歌的东西来解决这个问题。 如果这是一件简单的事情,那么在那之前有人认为这很棒,但正如我所说的,现在我真的很茫然!
提前致谢!
我不清楚什么系统上的密钥和configuration文件的描述。 但是,如果您习惯于能够从未复制到的盒子中使用您的私钥,则可以通过使用SSH代理转发来完成此操作。 尝试从上面引用的选项列表中删除“无代理转发”,看看是否能解决您的问题。
我在〜/ .ssh文件夹中有多个键。 清除所有这些,但主id_dsa键,并重新添加到gitosis密钥解决了这个问题。
为什么我会得到这样奇怪的行为仍然是一个谜! 它必须通过本地shell上的SSH /以不同方式处理密钥。 如果任何人都可以阐明它,我会感兴趣的(如果你需要的话,我有本地shell和远程SSH shell的-v和-vvv输出)。
我想补充一点,以防其他人遇到问题! (尽pipesearch起来非常困难,因为关于如何设置ssh密钥有太多的问题)
非常感谢所有帮助过我的人。