svn + ssh没有命令行的密码?

时间:2011-02-25 05:41:21

标签: svn

我想做

svn update /Users/radek/Sites/3.0.5/ -r HEAD --force

无需输入密码。

svn连接到我们的存储库服务器,但我不确定用什么用户名(我怎么能找到?)。我想这可能是rootradek

我为svn键入的密码与存储库服务器上的root密码相同,因此我将我的公钥添加到root的authorized_keys文件中。所以我ssh到存储库服务器而不输入密码,但它并没有影响svn要求输入密码。存储库服务器上用户radek的密码与我为svn up

键入的密码不同

如果我从Eclipse提交了一些东西,那么作者就是radek。

解决方案

svn info

告诉我必须登录到存储库服务器的用户,然后我将公钥添加到其authorized_keys文件中。现在,我不必在使用svn时输入pass。

2 个答案:

答案 0 :(得分:6)

有一个名为“ssh-agent”的程序会将未锁定的RSA或DSA密钥保存在内存中,并通过UNIX套接字将此密钥提供给SSH。假设您生成RSA或DSA公钥/私钥对,并将公钥添加到远程主机的“authorized_keys”或“authorized_keys2”文件中,则可以将其用于“无密码”SSH连接。首次向ssh-agent添加密钥或打开ssh-agent时,您需要提供密码,但无需密码即可使用SSH。您可以在设置SSH代理方面找到以下文章:

请注意,在Mac OS X上(从10.5及更高版本开始),如果您生成私钥/公钥对并将公钥放在远程主机的authorized_keys文件中,则当您通过SSH连接到该主机时,Mac OS X将自动启动自己的ssh-agent(无需设置)并提供记住密码(它将保存在KeyChain中)。您可以在Mac OS X Leopard -- Built-In SSH Agent上了解更多相关信息。

答案 1 :(得分:3)

如果您无法使用密钥文件,请使用sshpass(在Linux中):

安装sshpass

$ sudo apt-get install sshpass

设置临时环境变量

$ export SSHPASS=yourpass

编辑svn配置文件

$ nano ~/.subversion/config

最后在sshpass -e命令

之前注释掉添加ssh到ssh行
ssh = $SVN_SSH sshpass -e ssh -q -o ControlMaster=no