我想做
svn update /Users/radek/Sites/3.0.5/ -r HEAD --force
无需输入密码。
svn连接到我们的存储库服务器,但我不确定用什么用户名(我怎么能找到?)。我想这可能是root
或radek
我为svn键入的密码与存储库服务器上的root密码相同,因此我将我的公钥添加到root的authorized_keys文件中。所以我ssh到存储库服务器而不输入密码,但它并没有影响svn要求输入密码。存储库服务器上用户radek的密码与我为svn up
如果我从Eclipse提交了一些东西,那么作者就是radek。
svn info
告诉我必须登录到存储库服务器的用户,然后我将公钥添加到其authorized_keys文件中。现在,我不必在使用svn时输入pass。
答案 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