使用svn+ssh的pysvn
我正在使用pysvn,想找个好办法来处理只能通过svn+ssh访问的代码库。显然,使用SSH密钥可以让这一切变得简单多了,但我不能保证最终用户会使用SSH密钥。而且这个过程必须能在没有用户互动的情况下运行,因为它要进行一些svn日志的解析。
最大的问题是,使用svn+ssh时,会弹出一个交互式提示框要求认证。显然,我希望pysvn能自动用给定的凭证登录,但set_default_username和set_default_password在这方面对我没什么帮助。如果不能做到这一点,我至少希望能直接失败,并记录一条消息告诉用户去设置SSH密钥。不过,set_interactive似乎也没有影响,我在执行client.log('svn+ssh://path')时仍然会被要求输入密码。
有没有什么想法可以解决这个问题?没有SSH密钥的情况下,这真的能处理吗?因为是SSH在弹出提示。
1 个回答
2
看看ssh的配置选项PasswordAuthentication。
我不太确定pysvn是怎么和ssh一起工作的,但如果你在你的~/.ssh/config文件里把这个设置成no(或者可能是全局配置?),那么它就不会再提示你输入密码了。