web方式访问ssh

环境说明

需求 : 通过Web 浏览器来登录后端的SSH Server
优点 : 方便 、快捷 、安全、可控
环境 : VMWare Workstation NAT 模式的 VM
实现 : CentOS + Docker

一、docker安装
1、使用官方安装脚本自动安装
环境准备:虚拟机可以联通互联网,联网运行脚本安装即可。

curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun

2、启动docker

systemctl start docker

3、查看docker守护进程

ps aux | grep docker
root   3835  0.2  5.6 578936 56768 ?     Ssl  05:51   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

二、安装nginx容器

1、下载nginx镜像

docker pull nginx:latest

2、查看镜像

docker images
REPOSITORY    TAG          IMAGE ID       CREATED       SIZE
nginx         latest       08b152afcfae   11 days ago   133MB

3、后台启动容器并映射容器的80端口到宿主机的8080

docker run --name nginx-test -p 8080:80 -d nginx

4、查看容器运行状态

docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS        PORTS                                                              NAMES
391ae10d6e3a   nginx                    "/docker-entrypoint.…"   26 hours ago   Up 26 hours   0.0.0.0:8080->80/tcp, :::8080->80/tcp                              nginx-test

5、配置默认网页,修改index.html文件

cd /usr/share/nginx/html
tee index.html <<EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p><b>说明:这是空中动手实验室的最简单的演示界面</b> </p>

<iframe src="http://192.168.234.128:8090/?hostname=172.17.0.4&username=root&password=root= " name="iframe_a" width=1000 height=400></iframe>

</body>
</html>
EOF
6、查看index.html
cat index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p><b>说明:这是空中动手实验室的最简单的演示界面</b> </p>
<iframe src="http://192.168.234.128:8090/?hostname=172.17.0.4&username=root&password=root= " name="iframe_a" width=1000 height=400></iframe>
</body>
</html>

三、安装webssh容器

1、下载镜像

docker pull ascs/webssh:alpine-3.9

2、启动容器并映射端口

docker run -d --privileged --name webssh -p 8090:80 ascs/webssh:alpine-3.9

3、查看容器状态

docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS        PORTS                                                              NAMES
a1e8b1559be9   ascs/webssh:alpine-3.9   "wssh --port=80 FORE…"   24 hours ago   Up 24 hours   22/tcp, 443/tcp, 8000/tcp, 0.0.0.0:8090->80/tcp, :::8090->80/tcp   webssh

四、创建sshd容器

1、下载镜像

docker pull ubuntu

2、启动并交互式进入容器容器

docker run -it ubuntu:latest /bin/bash

以下操作在容器中进行

3、更新apt缓存,安装openssh-server

apt-get update; apt-get install openssh-server -y

4、启动SSH服务

mkdir -p /var/run/sshd
/usr/sbin/sshd -D &

5、查看服务状态

netstat -tunlp(apt-get install net-tools安装netstat)

6、修改SSH服务安全登录配置,取消pam登录限制(用到sed编辑器)

sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd

7、本地主机获取宿主机公钥

sudo ssh-keygen -t rsa 
sudo cat /root/.ssh/id_rsa.pub(创建在/root/.ssh/下面)

8、将公钥复制到容器下面文件里

mkdir root/.ssh 
vi /root/.ssh/authorized_keys

9、固化镜像(宿主机测试)

docker commit 1318b700e415 sshd:ubuntu 

五、访问测试

访问 http://宿主机ip:8080

posted @ 2024-09-18 11:54  *一炁化三清*  阅读(27)  评论(0编辑  收藏  举报