- 卸载 ssh server:
sudo apt-get remove openssh-server
- 安装 ssh server:
sudo apt-get install openssh-server
- 查看sftp服务路径:
locate sftp-server
(或者sudo find /* -name sftp-server
),保存 /usr/lib/openssh/sftp-server,下面有作用
$ locate sftp-server
/usr/lib/sftp-server
/usr/lib/openssh/sftp-server
/usr/share/doc/openssh-sftp-server
/usr/share/man/man8/sftp-server.8.gz
/var/lib/dpkg/info/openssh-sftp-server.list
/var/lib/dpkg/info/openssh-sftp-server.md5sums
- 修改 ssh server 配置
- 备份:
sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
- 重写配置:
sudo vi /etc/ssh/sshd_config
,填入以下内容:
Port 2222 #默认的是22,但是windows有自己的ssh服务,也是监听的22端口,所以这里要改一下
UsePrivilegeSeparation no
PasswordAuthentication yes
PermitRootLogin yes
AllowUsers username # 这里改成你登陆WSL用的
Subsystem sftp /usr/lib/openssh/sftp-server # 这个用于xftp连接,路径填写上面保存的路径
- 启动 ssh server:
sudo service ssh --full-restart
- wsl端查看IP:
ifconfig
- 配置永久解决方案
通过上面的方法,我们可以通过xshell登录自己电脑的Linux。但是断开之后重新开机,我们又需要重新配置SSH。因此,我们需要配置以下命令下,一劳永逸。
sudo service ssh --full-restart # 将该命令保存为service.sh,存在home目录下
然后,给该文件添加可执行权限:chmod u+x service.sh
配置好之后,下次开机,只需要在Linux子系统的默认终端运行bash service.sh
命令后,关掉终端改用xshell登录即可。 - (可选)配置自己的环境变量
以上设置成功后,可以vim ~/.bashrc
配置自己的环境变量
参考并感谢:
Xshell完美连接win10 Linux子系统
通过 xshell 连接 ubuntu on windows(WSL)
SSH能够连接,SFTP不能连接问题–亲测已成功!