在WSL2运行Ubuntu 22.04时出现svn: E170013错误该如何解决?
WSL2 Ubuntu 22.04下SVN输入凭据后挂起的解决方案
以下是针对该问题的几种可行排查和解决方法:
禁用SSH控制持久化
WSL2环境中SVN默认的SSH连接配置可能导致凭据验证阶段挂起。编辑用户目录下的SVN配置文件:nano ~/.subversion/config找到
[tunnels]区块,修改ssh行如下:ssh = $SVN_SSH ssh -o ControlMaster=no保存退出后,重新尝试SVN提交/更新操作。
改用Windows系统的OpenSSH客户端
WSL2的原生SSH可能存在兼容性问题,可切换为Windows自带的OpenSSH。同样编辑~/.subversion/config的[tunnels]区块,将ssh指向Windows的ssh.exe:ssh = /mnt/c/Windows/System32/OpenSSH/ssh.exe保存后重试操作。
切换到WSL1测试
WSL2的虚拟网络栈可能是问题根源,若业务允许,可临时切换到WSL1验证:wsl --set-version Ubuntu-22.04 1重启WSL后执行SVN操作,若问题消失则说明是WSL2的网络兼容性问题,可考虑长期使用WSL1,或等待WSL后续版本修复。
重置WSL2网络
偶尔WSL2的网络配置会异常,执行以下操作重置:
在Windows命令提示符(CMD)中运行:wsl --shutdown等待几分钟后重新启动WSL,再尝试SVN操作。
降级SVN版本
当前使用的SVN 1.14.1可能在WSL2环境存在适配问题,可尝试降级到1.13.x版本:- 卸载当前SVN:
sudo apt remove --purge subversion - 添加Ubuntu 20.04的软件源(该版本包含SVN 1.13.x):
添加一行:sudo nano /etc/apt/sources.listdeb http://archive.ubuntu.com/ubuntu focal main universe - 更新缓存并指定版本安装:
sudo apt update sudo apt install subversion=1.13.0-3ubuntu0.2 - 锁定版本防止自动更新:
sudo apt-mark hold subversion
- 卸载当前SVN:
检查SVN服务器端配置
联系服务器管理员,查看sshd_config中是否设置了UsePAM yes,若为no可能导致凭据验证时卡住;同时检查服务器端的SSH日志,确认是否有连接超时或验证失败的记录。
内容的提问来源于stack exchange,提问作者Joel Ravazzolo
相关产品推荐
相关产品推荐

