Подтвердить что ты не робот

Можно ли подключиться к SSH с помощью JavaScript?

Я знаю, что существует реализация VNC с использованием WebSockets (http://novnc.com), но для этого все еще требуется сервер. Я ищу для создания простого клиентского JavaScript (только Flash) подключение к порту с SSH. Я предполагаю, что WebSockets - единственный способ пойти, поскольку это делает TCP. Любой пример кода? Любой другой способ?

4b9b3361

Ответ 1

Извините, учитывая ваши ограничения (только Javascript на стороне клиента), нет возможности подключиться к простому SSH-серверу.

WebSockets не является простым TCP. Он представляет собой обрамленный протокол с HTTP-подобным рукопожатием между клиентом и сервером, который включает в себя политику происхождения.

Flash может выполнять простые TCP-соединения, но также имеет принудительное выполнение политики. То, как это делается, - это подключение к одному серверу на порту 843 и запрос специального XML файла, который содержит политику происхождения. Если вы готовы немного смягчить свои ограничения, чтобы вы могли запускать общие WebSockets для прокси-сервера TCP на сервере (на любом сервере) или на клиенте, тогда вы можете делать то, что вы хотите сделать. noVNC включает C и python WebSockets для TCP-прокси: http://github.com/kanaka/noVNC/tree/master/utils/.

Дополнительная информация, которая может вам пригодиться:

Ответ 2

Для тех, кто все еще ищет, paramikojs может быть ответом.

В настоящее время у меня есть аналогичная проблема: мне нужна реализация на стороне клиента SSH JS, и мне нужно, чтобы она лицензировалась BSD. Увы, парамикойс, похоже, лицензирован GPL.

Ответ 3

Вы можете посмотреть serfish. Это решение для доступа к SSH-серверу. Но если вы размещаете свое веб-приложение на том же сервере, что и ваш ssh, в нем есть другие решения, такие как shell.

Ответ 4

Это определенно возможно с использованием эмулятора Linux с полной поддержкой сети, такой как большой эмулятор OpenRISC jor1k.

Обратите внимание, что я создал browser-tools.net, набор встроенных инструментов из нескольких проектов.