2009-11-20 58 views
4

我正在与pysvn合作,我正在尝试找到一种体面的方式来处理只能通过svn + ssh访问的存储库。很明显,SSH密钥使得这一切非常简单,但我不能保证最终用户将使用SSH密钥。这也必须能够在没有用户交互的情况下运行,因为它将会执行一些svn日志解析。与svn + ssh pysvn

最大的问题是,使用svn + ssh会弹出交互式提示进行身份验证。很显然,我希望能够让pysvn自动使用一组给定的凭据进行登录,但是set_default_username和set_default_password在这方面没有任何好处。如果我不能这样做,我至少希望能够失败,并记录一条消息告诉用户设置一个SSH密钥。然而,set_interactive似乎对此也没有任何影响,并且我仍然被提示输入client.log('svn + ssh:// path')的密码。

有关如何解决此问题的任何想法?是否真的有可能在没有SSH密钥的情况下处理这个问题,因为它是引发提示的SSH?

回答

2

检出ssh配置选项PasswordAuthentication。

我不确定pysvn如何与ssh交互,但是如果您在〜/ .ssh/config(或者全局配置)中设置为no,那么它不应该提示输入密码。

+0

我认为这是我可能希望的最好的。 – f4nt 2009-11-21 18:18:06

+0

我在/ etc/ssh/ssh_config中将PasswordAuthentication设置为no,并且在使用pysvn时仍然提示输入密码。任何想法? – umpirsky 2011-12-21 12:37:36

+0

@umpirsky:您是否提示您输入远程服务器上的*密码*或密钥中的*密码*? – bstpierre 2011-12-21 12:39:23