使用Subversion自动验证

Mat*_*ner 6 svn authentication ssh

我有一个我连接的SVN服务器ssh+svn.签出包含大量svn:external存储库的特定目录时,我必须多次输入密码.

  1. 如何设置我的Subversion客户端以自动进行身份验证?
  2. 这方面的文件在哪里?

krt*_*tek 4

我不知道SVN内置的自动SSH身份验证机制。但是您可以使用 SSH 的公钥身份验证机制:

以下是有关如何执行此操作的简短教程:http://www.petefreitag.com/item/532.cfm您可以轻松地在互联网上找到有关此内容的更多信息。

由于它很有用,这里有一个更详细的指南,其中包含有关代理转发的信息: http: //unixwiz.net/techtips/ssh-agent-forwarding.html

有关公钥身份验证的一些基础知识

当您尝试登录时,远程 SSH 服务器可以采用不同的方式对您进行身份验证。经典密码就是其中之一。但也可以使用基于异步密钥的机制。

您在本地计算机上创建一对密钥:私有密钥对和公共密钥对。然后,您必须将公钥分发到您要登录的所有远程 SSH 服务器。私钥永远不被分发是非常重要的。

当您尝试登录时,远程服务器会发送使用私钥加密的质询。如果您熟悉异步密码学,您就会知道现在只有公钥可以破译所述加密质询。因此,当服务器收到响应时,它可以对其进行解密,如果答案和质询相同,则您已通过身份验证。

SVN 操作或与此远程计算机的任何其他 SSH 连接不再需要密码。

SSH代理

有关 ssh-agents 的更多信息。

当您创建密钥对时,ssh-keygen 将要求输入密码以进一步加密私钥以提高其安全性。您可以将此密码留空,这样您在使用密钥时就无需输入密码。

但是,如果您选择密码,则每次要使用密钥时,都必须输入密码,这与使用 SSH 的密码身份验证相同。但有一个巧妙的解决方案:ssh-agent。

代理是一个小守护进程,它将把您的密钥存储在内存中。当您使用 ssh-add 将密钥添加到代理时,它会首先询问您的密码,然后每次 SSH 客户端需要密钥时,它都会询问代理,因此不再需要密码。

在我的第二个链接中,您将找到有关代理转发的信息,这也是使用 ssh 代理的一个很好的理由。

我希望我说得清楚,否则可以问任何你想问的问题。