conda突然用不了了,查了两个小时才发现解决办法,赶紧趁热打铁记录下。
背景
wls2开的ubuntu20,子系统打开了ssh,宿主机打开了端口转发。使用同一局域网的另一台机器,通过vscode来访问宿主机的子系统。
问题描述
反复配环境,然后就突然报SSL 443相关的错误,具体来说如下所示。
Channels:- defaults
Platform: linux-64
Collecting package metadata (repodata.json): - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))': /pkgs/main/linux-64/repodata.json.zstRetrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))': /pkgs/r/linux-64/repodata.json.zstRetrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))': /pkgs/r/noarch/repodata.json.zst
而且是秒报错,看起来就是443不让访问了,证书出问题了,所以就对症下药看看怎么更新证书、或者复原证书。
解决办法
参考文章https://www.reddit.com/r/bashonubuntuonwindows/comments/1b5i6my/ssl_doesnt_work_on_wsl_2_ubuntu/
,输入如下命令更新下就可以了,稀里糊涂的,怎么会证书出问题了?
sudo apt-get update
sudo apt-get install ca-certificates
update-ca-certificates
题外话
打通隧道,以2333端口为例,子系统ip为172.123.123.123为例。
# 把子系统的ssh服务打开
sudo systemctl status ssh
sudo systemctl start ssh# ssh 用密码验证
sudo vim /etc/ssh/sshd_config
# 把里面的passwordAuthentication从no改为yes# 看看它的ip地址,这里为172.123.123.123
ip adress
# 或者
ifconfig# 宿主机打开端口转发
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2333 connectaddress=172.123.123.123 connectport=22# 再防火墙放行
netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2333# 看看成功没
netsh interface portproxy show all
子系统似乎必须保持窗口打开,否则就会休眠。