【发布时间】:2012-09-18 09:17:33
【问题描述】:
我在使用 TortoiseSVN 1.7.8 访问 SVN 存储库时遇到问题。
SVN 存储库位于带有openssh 5.3p1:81.el6 的 CentOS 6.3 机器上,并且似乎运行正常。
# svnadmin --version
# svnadmin, version 1.6.11 (r934486)
我可以使用以下命令从另一个 CentOS 机器访问存储库:
svn list svn+ssh://USER@xxx.xx.xx.xxx/var/svn/joetest
但是当我尝试从 Win 7 工作站使用 TortiseSVN 浏览存储库时,我无法使用以下路径:
svn+ssh://USER@xxx.xx.xx.xxx/var/svn/joetest
我从 TortoiseSVN 收到以下错误:
无法通过 URL 连接到存储库 'svn+ssh://USER@xxx.xx.xx.xxx/var/svn/joetest' 更好的调试SSH 连接问题,从 [tunnels] 中的 'ssh' 中删除 -q 选项 Subversion 配置文件的部分。网络连接 意外关闭
我可以使用 Putty 从工作站通过 SSH 登录。
如果我尝试以 root 身份访问,结果是相同的。
我已将存储库/var/svn/ 的所有权授予USER:USER 并运行chmod 2700 -R /var/svn/。
因为我可以从另一个 Linux 机器通过 ssh 访问存储库,所以权限似乎不是问题。
当我使用tail -fn 2000 /var/log/secure 查看日志文件时,每次 TortiseSVN 要求输入密码时,我都会看到以下内容:
Sep 26 17:34:31 dev sshd[30361]: Accepted password for USER from xx.xxx.xx.xxx port 59101 ssh2
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session opened for user USER by (uid=0)
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session closed for user USER
我实际上可以登录,但会话随即关闭。
我注意到会话正在由 root (uid=0) 为 USER 打开,这可能是正确的,但我会提到它以防与问题有关。
我研究过修改svnserve.conf,但据我所知,通过svn+ssh 访问存储库时没有使用它,通过此方法为每次登录创建一个私有svnserve 实例。来自手册:
还有第三种调用 svnserve 的方法,那就是在“隧道”中 模式”,带有 -t 选项。此模式假定远程服务 RSH 或 SSH 等程序已成功验证用户身份,并且 现在正在以该用户身份调用私有 svnserve 进程。服务端 程序运行正常(通过标准输入和标准输出进行通信),并且 假设流量被自动重定向到某些 某种隧道回到客户端。当 svnserve 被一个 像这样的隧道代理,请确保经过身份验证的用户具有完整的 对存储库数据库文件的读取和写入访问权限。 (见服务器 和权限:警告。)它基本上与 本地用户通过 file:/// URL 访问存储库。
sshd_config 中唯一的非默认设置是:
Protocol 2 # to disable Protocol 1
SyslogFacility AUTHPRIV
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding no
Subsystem sftp /usr/libexec/openssh/sftp-server
有什么想法吗?
【问题讨论】:
-
只是一个想法,尝试将 USER@ 从 URL 中取出并等待乌龟提示输入凭据。不确定它是否会起作用,但值得一试。
-
感谢您的建议,但结果相同。
-
打开tortoise repo-browser,出现什么错误?
-
我在问题顶部附近添加了错误消息。
-
您可以使用相同的凭据进行 ssh 操作吗?
标签: bash svn ssh tortoisesvn openssh