AutumnVerse
V2EX  ›  Windows

WSL2 里面的 ssh 服务可真特么坑爹啊!

  •  
  •   AutumnVerse · Nov 10, 2022 · 5634 views
    This topic created in 1292 days ago, the information mentioned may be changed or developed.

    环境:win11 wsl2 ubuntu22.04

    正常开启 ssh 服务后,使用 windows 自动的端口转发功能,将 ubuntu ssh 端口转发到本机以便外网访问。一通操作以后发现本地能连接但是局域网内的其他机器始终提示 "Connection reset by peer"。然后我又尝试telnet xxxx 22,结果竟然连通了,不仅连通了,还正常返回了服务端 ssh 版本。我就纳闷了,telnet 都能连通,都能正常返回,为毛 ssh 命令就连不通呢。

    于是经过漫长的排查,又是抓包又是改防火墙,折腾了一天都找不到原因。就在我即将放弃的时候,无意中看到一篇博客里面提到一句话“wsl 中已经安装的 ssh 是不完整的或者有问题的,所以无论你怎么改都不会生效,甚至 ssh 服务都无法正常启动,正确的做法是先卸载 ssh 再重新安装。”,我尼玛人傻了,这也行???于是我删掉自带的 ssh 服务,重装 ssh 服务,特喵的连接立马正常了。我尼玛,不带这么坑人的吧???

    16 replies    2022-11-11 20:29:35 +08:00
    Neol
        1
    Neol  
       Nov 10, 2022
    老哥怎么自动转发,我之前用的脚本现在有个服务获取不到 wsl 的 ip 了没法用了(
    albert0yyyy
        2
    albert0yyyy  
       Nov 10, 2022
    其实可以去搜搜文章先,我看过的每篇 wsl2 的文章都有讲重装 ssh 的,当然 wsl2 有的地方确实很坑
    AutumnVerse
        3
    AutumnVerse  
    OP
       Nov 10, 2022   ❤️ 1
    @Neol #1 现在 wsl2 可以用 localhost 访问,直接转发到 localhost 就行了。比如

    netsh interface portproxy add v4tov4  listenaddress=* listenport=22 connectaddress=localhost connectport=22
    AutumnVerse
        4
    AutumnVerse  
    OP
       Nov 10, 2022
    @albert0yyyy #2 确实基本上命令里面都有写删除 ssh ,但是我从没想到会有这么个坑呀。操作的时候直接就跳过这一步了
    chihiro2014
        5
    chihiro2014  
       Nov 10, 2022
    docker desktop 可行?
    chenliang0571
        6
    chenliang0571  
       Nov 10, 2022
    局域网内可以的,我就在在用。
    老 mac ssh X11 远程到新机器的 wsl2 intellij 。
    Neol
        7
    Neol  
       Nov 10, 2022
    @jiangwei2222 我这倒是似乎有点问题,无论怎么设置都会出现"kex_exchange_identification: Connection closed by remote host", 似乎是没有转发成功
    1ver
        8
    1ver  
       Nov 10, 2022   ❤️ 1
    我之前也搞过 wsl2 的外网访问,除了重装还需要配置下[ssh 开机自启和 wsl2 在 windows 开机时自启]( https://xdo0.github.io/2022/03/22/wsl%E4%BD%BF%E7%94%A8.html#%E8%AE%BE%E7%BD%AE%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF)
    roundgis
        9
    roundgis  
       Nov 10, 2022 via Android
    不要用就對了

    就是個輔助開發用的
    novolunt
        10
    novolunt  
       Nov 10, 2022 via iPhone   ❤️ 1
    不要相信任何不是原生 linux 内核的所谓 linux 发行版。
    charlie21
        11
    charlie21  
       Nov 11, 2022 via iPhone
    是的
    安装 wsl 任一发行版之后第一件事就是重安 openssh-server
    labubu
        12
    labubu  
       Nov 11, 2022
    wsl 好像也一样,踩过坑
    MasterCai
        13
    MasterCai  
       Nov 11, 2022
    ssh 稍微配置一下还行,最坑的是 systemd
    lookStupiToForce
        14
    lookStupiToForce  
       Nov 11, 2022
    说的好,于是我选择 vmware
    AutumnVerse
        15
    AutumnVerse  
    OP
       Nov 11, 2022
    @Neol #7 你把 linux 里面的 ssh 卸载了,重装一个就好了,我就是报这个错误
    AutumnVerse
        16
    AutumnVerse  
    OP
       Nov 11, 2022
    @1ver #8 是的,自启我是用的 windows 计划任务,设置成登录前执行就可以了。l
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   952 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 20:08 · PVG 04:08 · LAX 13:08 · JFK 16:08
    ♥ Do have faith in what you're doing.