2011-02-25 111 views
8

我想做svn + ssh没有密码从命令行?

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时输入密码。

+0

你运行SSH代理过吗?您是否将密钥添加到代理? – wilhelmtell

+0

与编程无关。投票迁移到http://superuser.stackexchange.com –

+1

我是一名程序员,这帮助我编写了一个程序来自动执行我的程序的svn checkins。 – Kyle

回答

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文件中,那么当您进入该主机时,Mac OS X将自动启动其自己的ssh-agent(无需安装),并提供给记住密码(它w把它保存在KeyChain中)。你可以阅读关于Mac OS X Leopard -- Built-In SSH Agent的更多信息。

+0

我在OS X 10.6.2上,我将公钥添加到存储库服务器的根目录“authorized_keys”,但没有任何帮助。或者我错过了什么? – Radek

+0

除非您以root身份进行身份验证,否则您不应该将其放在那里;你应该把它放在远程主机上的“〜/ .ssh/authorized_keys2”下面。您还必须确保主机配置为允许使用这些密钥(某些系统配置为禁止使用此密钥)。 –

+0

〜是主目录,对吧?我必须键入的密码不是用户'radek',而是'root'的密码,我可以登录到存储库服务器而无需键入任何密码作为根,但它没有帮助。仍然必须键入svn的svn密码 – Radek

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 
+0

谢谢:)我正在寻找这么长时间 –