aigems commited on
Commit
b673f74
·
1 Parent(s): 7c797c9
Files changed (4) hide show
  1. Dockerfile +8 -2
  2. app.js +3 -2
  3. public/index.html +1 -0
  4. start.sh +1 -1
Dockerfile CHANGED
@@ -47,7 +47,13 @@ RUN mkdir -p /etc/dropbear \
47
  && chown -R user:user /etc/dropbear
48
 
49
  # 更改目录所有权
50
- RUN chown -R user:user /app
 
 
 
 
 
 
51
 
52
  # 暴露 Web 应用端口和 Dropbear SSH 端口
53
  EXPOSE 7860 2202
@@ -60,4 +66,4 @@ RUN chmod +x /start.sh
60
  USER user
61
 
62
  # 使用启动脚本
63
- CMD ["/start.sh"]
 
47
  && chown -R user:user /etc/dropbear
48
 
49
  # 更改目录所有权
50
+ RUN chown -R user:user /app /etc/dropbear \
51
+ && chmod 700 /etc/dropbear \
52
+ && chmod 600 /etc/dropbear/*
53
+
54
+ # 使用 gosu 来运行 start.sh
55
+ RUN apt-get update && apt-get install -y gosu \
56
+ && rm -rf /var/lib/apt/lists/*
57
 
58
  # 暴露 Web 应用端口和 Dropbear SSH 端口
59
  EXPOSE 7860 2202
 
66
  USER user
67
 
68
  # 使用启动脚本
69
+ CMD ["gosu", "user", "/start.sh"]
app.js CHANGED
@@ -6,14 +6,15 @@ const port = 7860;
6
  app.use(express.json());
7
  app.use(express.static('public'));
8
 
9
- // 添加根路径处理
10
  app.get('/', (req, res) => {
11
  res.sendFile(__dirname + '/public/index.html');
12
  });
13
 
 
14
  app.post('/ssh', async (req, res) => {
15
  const conn = new Client();
16
-
17
  try {
18
  await new Promise((resolve, reject) => {
19
  conn.on('ready', resolve)
 
6
  app.use(express.json());
7
  app.use(express.static('public'));
8
 
9
+ // 根路径处理
10
  app.get('/', (req, res) => {
11
  res.sendFile(__dirname + '/public/index.html');
12
  });
13
 
14
+ // SSH 命令执行
15
  app.post('/ssh', async (req, res) => {
16
  const conn = new Client();
17
+
18
  try {
19
  await new Promise((resolve, reject) => {
20
  conn.on('ready', resolve)
public/index.html CHANGED
@@ -13,6 +13,7 @@
13
  </head>
14
  <body>
15
  <h1>Web SSH</h1>
 
16
  <input type="text" id="command" placeholder="Enter SSH command">
17
  <button onclick="executeCommand()">Execute</button>
18
  <div id="output"></div>
 
13
  </head>
14
  <body>
15
  <h1>Web SSH</h1>
16
+ <p>This application allows you to execute SSH commands on the server. Enter your command below and click "Execute".</p>
17
  <input type="text" id="command" placeholder="Enter SSH command">
18
  <button onclick="executeCommand()">Execute</button>
19
  <div id="output"></div>
start.sh CHANGED
@@ -17,7 +17,7 @@ fi
17
 
18
  # 启动 Dropbear,使用 2202 端口,允许密码认证,后台运行
19
  echo "Starting Dropbear..."
20
- dropbear -R -p 2202 -w -E &
21
 
22
  # 检查 Dropbear 是否成功启动
23
  for i in {1..10}; do
 
17
 
18
  # 启动 Dropbear,使用 2202 端口,允许密码认证,后台运行
19
  echo "Starting Dropbear..."
20
+ dropbear -R -p 2202 -w -E -F &
21
 
22
  # 检查 Dropbear 是否成功启动
23
  for i in {1..10}; do