饱受 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 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
inet6 fe80::a532:2905:ea6f:f886 prefixlen 64 scopeid 0xfd
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 mtu 1500
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0xfe
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 [email protected]
Finalshell 设置长这样
远程登录
IP 为公网 win10 电脑 IP,写这篇帖子时很神奇地 WSL 和电脑 IP 是一致的,后来也许 win10 晚上自动偷偷更新重启,导致 WSL IP 变了,纠结了一周都无法再远程登录,看了这个视频后终于悟了,需要对 WSL 的 IP 进行映射,在其他机器上则需要 ssh 到 win 10 电脑的 IP。
在另一台机器上:
ssh [email protected] # win10 ip
Note
看别人的帖子说每次 WSL 打开后,IP 会变,所以需要一个固定的 WSL IP,等有空再弄,
wsl---ssh远程连接及ip映射配置详解 - 知乎
- wsl “固定IP”配置
Ref.
- 用 ssh 从外部连接到寝室个人电脑的 Ubuntu 系统或 win10 下的 WSL--Linux 子系统
- Ubuntu - 本地SSH连接WSL【WSL第二弹】
- Ubuntu下解决ifconfig command not found的办法
- ubuntu 18.04 - zsh: command not found: ifconfig
- 关于win10防火墙“高级设置”变成灰色点不了,解决办法
- wsl---ssh远程连接及ip映射配置详解
- WSL允许用其他电脑ssh连接