美文网首页
SSH 远程登录 WSL

SSH 远程登录 WSL

作者: 美式永不加糖 | 来源:发表于2021-08-29 17:50 被阅读0次

    饱受 Teamviewer/向日葵 之苦后,还是决定操作一番

    安装 openssh-server

    # 删除然后重新装ssh
    # 并不知道为什么,但好多人这么搞
    
    sudo apt-get remove openssh-server
    sudo apt-get install openssh-server
    

    修改 sshd_config 文件

    sudo vi /etc/ssh/sshd_config
    
    #Port 22
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::
    
    
    # 更改端口,防冲突
    # 监听地址去掉注释
    Port 2222
    #AddressFamily any
    ListenAddress 0.0.0.0
    #ListenAddress ::
    

    PasswordAuthentication no --> yes
    PermitEmptyPasswords no --> yes

    # To disable tunneled clear text passwords, change to no here!
    PasswordAuthentication yes
    PermitEmptyPasswords yes
    

    PermitRootLogin

    #PermitRootLogin prohibit-password
    
    # 改成👇
    
    PermitRootLogin yes
    

    重启 ssh server

    sudo service ssh restart
    # * Starting OpenBSD Secure Shell server sshd
    
    # 查看 ssh server 状态
    service ssh status
    # * sshd is running
    

    查看 IP

    ifconfig
    #zsh: command not found: ifconfig
    
    # 如果出现 command not found
    sudo apt install net-tools
    
    ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.20.32.234  netmask 255.255.128.0  broadcast 10.20.127.255
            inet6 2001:da8:201d:1101:d76c:f9ab:64e3:8cec  prefixlen 128  scopeid 0x0<global>
            inet6 fe80::a532:2905:ea6f:f886  prefixlen 64  scopeid 0xfd<compat,link,site,host>
            ether 6c:4b:90:06:8b:2d  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 1500
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0xfe<compat,link,site,host>
            loop  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    也可以:

    ip a
    

    查看 hostname, username

    hostname
    #DESKTOP-19JBVQS
    
    whoami
    #shakesbeer
    

    设置防火墙

    不知道为什么 Windows Defender 下面的选项是灰色的点不开....
    只好从控制面板进

    See --> 用 ssh 从外部连接到寝室个人电脑的 Ubuntu 系统或 win10 下的 WSL--Linux 子系统

    或者在 cmd 中

    netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222
    

    查看公网 IP

    http://www.net.cn/static/customercare/yourip.asp
    好像并不需要

    端口映射

    管理员身份打开 CMD

    netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=10.20.32.234 connectport=2222
    
    # listenport=[win10端口] listenaddress=0.0.0.0 connectport=[虚拟机的端口] connectaddress=[虚拟机的ip]
    

    listenport = 这一步修改的 PORT
    listenaddress = 0.0.0.0
    connectport = Win10 默认的2222
    connectaddress= WSL 中 ifconfig 查看到的

    两个 port 应该是一样的

    netsh interface portproxy show all
    

    SSH 登录

    本地登录

    IP 为 前面 ifconfig 查到的本地 IP

    ssh shakesbeer@127.0.0.1
    

    Finalshell 设置长这样


    远程登录

    IP 为公网 win10 电脑 IP,写这篇帖子时很神奇地 WSL 和电脑 IP 是一致的,后来也许 win10 晚上自动偷偷更新重启,导致 WSL IP 变了,纠结了一周都无法再远程登录,看了这个视频后终于悟了,需要对 WSL 的 IP 进行映射,在其他机器上则需要 ssh 到 win 10 电脑的 IP。

    在另一台机器上:

    ssh shakesbeer@10.20.32.234 # win10 ip
    

    Note

    看别人的帖子说每次 WSL 打开后,IP 会变,所以需要一个固定的 WSL IP,等有空再弄,
    wsl---ssh远程连接及ip映射配置详解 - 知乎

    • wsl “固定IP”配置

    Ref.

    相关文章

      网友评论

          本文标题:SSH 远程登录 WSL

          本文链接:https://www.haomeiwen.com/subject/yzcgiltx.html