Skip to content

atiksorg/ssh-rest-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

SSH REST Proxy — Локальный сервер

Этот сервер позволяет веб-приложению работать с удалёнными серверами по SSH через простой REST API. Браузер не может напрямую устанавливать SSH-соединения — прокси решает эту проблему.


Требования

  • Node.js версии 18 или выше

Установка

1. Создайте папку и файл сервера

Создайте папку ssh-proxy, внутри неё создайте файл server.js и вставьте в него код сервера.

2. Создайте package.json

В той же папке создайте файл package.json:

{
  "name": "ssh-proxy",
  "version": "1.0.0",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "cors": "^2.8.5",
    "dotenv": "^16.0.0",
    "express": "^4.18.0",
    "ssh2": "^1.15.0"
  }
}

3. Установите зависимости

npm install

Запуск

Linux / macOS

node server.js

Или через npm:

npm start

Windows

node server.js

Или через npm:

npm start

После запуска в терминале появится:

Stateless SSH REST API running on port 3016

Сервер будет доступен по адресу: http://localhost:3016


Смена порта (опционально)

По умолчанию используется порт 3016. Чтобы изменить его, создайте файл .env рядом с server.js:

PORT=8080

Автозапуск (опционально)

Linux / macOS — через pm2

npm install -g pm2
pm2 start server.js --name ssh-proxy
pm2 save
pm2 startup

Windows — через pm2

npm install -g pm2
pm2 start server.js --name ssh-proxy
pm2 save

Или можно добавить в Планировщик задач Windows, указав команду node C:\путь\до\server.js.


Использование в приложении

После запуска укажите адрес прокси в настройках приложения:

http://localhost:3016

Важно: сервер принимает подключения только от браузера на том же компьютере. Если хотите открыть доступ по сети — убедитесь, что порт открыт в файрволе, и используйте HTTPS (например, через nginx + Let's Encrypt).


Безопасность

  • Сервер не хранит SSH-credentials — они передаются с каждым запросом и используются только для текущего соединения.
  • Не публикуйте сервер в интернет без дополнительной защиты (токен доступа, HTTPS, firewall).
  • Некоторые опасные команды (rm -rf /, mkfs, dd if=...of=/dev/...) заблокированы на уровне сервера.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors