diff --git a/.vscode/sftp.json b/.vscode/sftp.json new file mode 100644 index 0000000..7cffaef --- /dev/null +++ b/.vscode/sftp.json @@ -0,0 +1,11 @@ +{ + "name": "laplace", + "host": "10.110.8.9", + "username": "root", + "password": "teamw9rk", + "remotePath": "/root/tmp/webssh2", + "protocol": "sftp", + "port": 22, + "uploadOnSave": true, + "ignore": [".vscode", ".git", ".DS_Store", "node_modules", "vendor"] +} diff --git a/Dockerfile b/Dockerfile index 68802f3..127fdec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ FROM node:16-alpine +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories RUN apk update && apk add bash WORKDIR /usr/src diff --git a/app/config.json.sample b/app/config.json.sample index 26f8c39..f1133f9 100644 --- a/app/config.json.sample +++ b/app/config.json.sample @@ -1,7 +1,7 @@ { "listen": { "ip": "0.0.0.0", - "port": 2224 + "port": 2222 }, "socketio": { "serveClient": false, diff --git a/app/server/routes.js b/app/server/routes.js index c1ea3f9..6b31249 100644 --- a/app/server/routes.js +++ b/app/server/routes.js @@ -53,9 +53,10 @@ exports.connect = function connect(req, res) { } } - if (req.method === 'POST' && req.body.username && req.body.userpassword) { + if (req.method === 'POST' && req.body.username && (req.body.userpassword || req.body.privatekey)) { req.session.username = req.body.username; req.session.userpassword = req.body.userpassword; + req.session.privatekey = req.body.privatekey; if (req.body.port && validator.isInt(`${req.body.port}`, { min: 1, max: 65535 })) port = req.body.port; diff --git a/app/server/socket.js b/app/server/socket.js index 9f49dc8..27521a7 100644 --- a/app/server/socket.js +++ b/app/server/socket.js @@ -222,6 +222,7 @@ module.exports = function appSocket(socket) { const { ssh } = socket.request.session; ssh.username = socket.request.session.username; ssh.password = socket.request.session.userpassword; + ssh.privateKey = socket.request.session.privatekey; ssh.tryKeyboard = true; ssh.debug = debug('ssh2'); conn.connect(ssh);