web方式訪問ssh

*一炁化三清*發表於2024-09-18

環境說明

需求 : 透過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

相關文章