0

我可以像这样在我的服务器地址登录后连接到 svn

svn+ssh://login@someIp/somepath

那里也有可能有密码吗?

4

1 回答 1

2

不它不是。Subversion 对外部 SSH 进程的委托不支持传递密码。使用 SSH 的部分目的是避免拦截明文密码,如果支持,这将(通过缓存这些密码)是一个严重的错误,并且缺乏这个“功能”是设计使然。

您可以做的是使用 RSA 密钥身份验证来允许单点登录(理想情况下,加密您的密钥,以便您的操作系统在您第一次尝试使用它时提示输入该密钥的密码,然后记住它;MacOS X 和现代 GNOME —— 所以库存的 Ubuntu —— 会开箱即用地做到这一点)。

使用该ssh-keygen命令生成一个 RSA 密钥对,并authorized_keys在 SVN 服务器上为您的用户安装文件中的公共部分。(某些站点可能还允许在 LDAP 中安装 RSA 公钥;您的系统管理员将能够告诉您更多信息)。

顺便说一句,甚至不需要在 URL 中包含您的用户名。您可以在以下位置应用适当的配置~/.ssh/config

Host your-svn-server
  User your-login-name
  IdentityFile /path/to/your/key # the private half of your keypair

如果您为密钥使用默认文件名,则无需配置其位置;仅当您在每个工作站使用多个密钥时才真正需要这样做。

于 2013-08-07T12:17:10.233 回答