我在 Windows 机器上运行 VisualSVN 服务器。我可以通过多种方式毫无问题地访问它:
- 通过
svn
连接到客户端时在 Debian Linux 客户端的命令行上使用ssh
- 通过多台机器上的多个 Web 浏览器
- 当我坐在机器旁并
lxterminal
在桌面环境中使用时,来自我的 Ubuntu 机器。
但是,当我通过远程登录同一台 Ubuntu 机器时,我无法完成交易ssh
。当我svn
在终端窗口中执行任何需要与服务器通信的命令时ssh
,它会找到服务器并要求进行身份验证,但是一旦提供了凭据,它就会挂起并且没有输出。我可以在服务器端看到它请求数据并且没有记录任何错误,但我无法看到除此之外会发生什么。
lxterminal
从它工作的桌面上,我得到一个图形对话框,而不是在窗口中提示我输入密码。我不确定这是否相关。
可能相关或不相关的其他信息:
- 有问题机器的操作系统:
Linux 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018
svn
有问题的机器上的客户端版本:svn, version 1.9.7 (r1800392)
- 有问题的客户端是在 Windows 10 主机上的 Oracle VM 中运行的虚拟机
- 通过代理服务器访问 VisualSVN 服务器。代理服务器是运行相同版本的操作系统和 Apache 的 Ubuntu VM。(如前所述,当从运行不同操作系统的多台不同机器访问时,代理工作正常。)
- 工作命令行客户端 SVN 版本包括:
svn, version 1.8.9-SlikSvn-1.8.9-X64 (SlikSvn/1.8.9) X64
(Windows 10 的 DOS 提示符)svn, version 1.8.10 (r1615264)
(Debian Linux 盒子)
- 在所有情况下使用的协议都是 http,例如
svn list http://svn.example.com/svn/myproj
- 涉及的所有机器都在专用网络上。在某些情况下包括 VPN,但 VPN 适用于非 Ubuntu 机器,没有明显问题。
我对坐在引起我问题的 Ubuntu 机器旁边的笔记本电脑做了一些进一步的实验。当它们彼此相邻时,我注意到在从笔记本电脑启动
svn
的会话中输入密码后,我在桌面会话ssh
中得到了一个密钥环对话框。这是可怕的行为,因为我通常使用的是因为我无法访问机器,但这完全是罪魁祸首。如果我在桌面会话的该对话框中单击“取消”,终端中的事务将完成。ssh
svn
ssh
有了这些信息,我就能够追踪到一个明显的永久性修复。在底部的文件
~/.subversion/servers
中,有一个注释掉的选项store-passwords = no
. 我取消了注释,现在它似乎起作用了。它不存储密码,但这就是我想要的。