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
五、访问测试