我在一个具有严格安全要求的组织工作,有时甚至过于严格。我的项目团队正在尝试创建一个 SVN 存储库,但我们在设置一个以满足我们的需求和安全要求时遇到了困难。
我们的 IT 部门要求我们使用两因素身份验证来验证自己。每个开发人员都有一个 RSA 令牌,必须使用该令牌通过 SSH 登录到存储库主机。令牌上显示的值每分钟更改一次,每个值只能使用一次。
开发人员需要存储密码的能力。这使我们无法使用svn+ssh
登录到存储库。由于 RSA 令牌每分钟更改一次,因此我们无法存储 SSH 密码。更糟糕的是,RSA 令牌会使我们每分钟减少一次 SVN 操作。这是完全不可接受的,特别是因为我们有将多个 SVN 操作链接在一起的脚本。
我们试图通过打开带有端口转发的 SSH 隧道来进行妥协。我们将打开一条隧道,ssh user@hostmachine -L 3690:localhost:3690
用于将本地机器上的所有 SVN 请求转发到svnserve
正在运行进程的安全机器。这意味着我们可以使用双重身份验证登录,然后在我们的实用程序中使用单独的 SVN 用户名和密码(可以存储)。
不幸的是,我们注意到我们不需要隧道。主机名可见的任何计算机都可以使用端口 3690。这对 IT 来说是不可接受的,我们的系统管理员认为这svnserve
是问题所在,所以她想知道我们是否必须回到svn+ssh
.
有没有可行的解决方案?我们的系统管理员正确吗?是否有一个选项svnserve
会强制它只监听来自本地主机的流量?