@[TOC]
- 环境配置:一台公网服务器(腾讯云)、一台笔记本电脑、WSL子系统
- 涉及知识:docker、Frp
前置配置请参考第一篇文章👀:
editor.csdn.net/md/?article…
1、WSL2机器部署centos镜像并开放ssh端口
接着上篇文章,这里我们实现在WSL2机器上利用docker部署基础的centos镜像,开放其ssh端口,然后利用公网ip进行访问ssh登录访问!
1.1 编写Dockfile脚本
mkdir /home/ssh
vim Dockerfile
🐱🚀其中Dockfile内容如下:
FROM centos:7
# 升级 yum 源,全选 yes
RUN yum -y update
# 安装openssh-server
RUN yum -y install openssh-server
# 修改/etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
# 生成sshkey
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# 变更root密码
RUN echo "root:12345"|chpasswd
# 开放22端口
EXPOSE 22
# 运行脚本,启动sshd服务
CMD ["/usr/sbin/sshd", "-D"]
1.2 创建镜像,启动容器
docker build -t centos7_ssh:test .
docker images
docker run -d -p 23:22 --name=ssh_test_7 centos7_ssh:test
docker ps
1.3 查看frps管理端
✨✨✨注:这里外网端口开放的是23端口,映射到内网容器的22端口,对于公网(腾讯云)需要开放此端口。
1.4 在其他机器进行ssh登录WSL2机器的ssh_test_7(docker容器)
这里我选的WSL2的宿主机,笔记本电脑,打开cmd进行连接,其中命令如下:
ssh -p 23 root@公网ip
密码如上面设置的:12345
结果如下图:成功进入容器!
2、WSL2机器无法访问github的解决方案
有时候在WSL2子系统需要直接访问github,但是会报403超时等错误,我这里的解决方案如下:
- 1:笔记本系统启动vpn代理,查看代理端口(软件就不说了👀)
-
2:在WSL2子系统中查看笔记本主机IP:
cat /etc/resolv.conf
-
3:在WSL2子系统中配置代理:export ALL_PROXY="http://第二步查看到的IP:代理的端口"
这样,在访问就解决了!
3、其他问题
3.1 ssh缓存问题
出现这个错误的原因是,本地的ssh和服务器的ssh对不上
只需要删除本地如下对应的ssh缓存信息,然后重新连接即可。
3.2 配置未开启远程连接
需要将上面的Dockfile内容修改如下:
FROM centos:7
# 升级 yum 源,全选 yes
RUN yum -y update
# 安装openssh-server
RUN yum -y install openssh-server
# 修改/etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
# 修改/etc/ssh/sshd_config,这是新增的,之前第一步完成是没有问题的,后面在连接就报错了,加上这行就可以了
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config
# 生成sshkey
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# 变更root密码
RUN echo "root:12345"|chpasswd
# 开放22端口
EXPOSE 22
# 运行脚本,启动sshd服务
CMD ["/usr/sbin/sshd", "-D"]