Wetty = Web + tty. SSH клиент в браузере.

0
1133

Wetty — это альтернативный ssh клиент использующий эмулятор терминала из Chrome OS (hterm) написанный на JavaScript. Если вам периодически нужен доступ к серверу по SSH, а кроме браузера ничего нет, то подготовится к такой ситуации заранее поможет Wetty.

Установка Wetty

$ git clone https://github.com/krishnasrinivas/wetty
$ cd wetty
$ npm install

Запуск по HTTP

$ node app.js -p 3000

Если вы запускаете приложение от root, то запуститься /bin/login, если нет, то вы подключитесь к SSH серверу на localhost. Если требуется подключение к удаленному SSH серверу, используйте параметр —sshhost, —sshport и —sshuser.

Вы также можете вставлять имя пользователя в ссылке, например:

http://yourserver:3000/wetty/ssh/<username>

Запуск по HTTPS

По возможности используйте HTTPS. Если у вас нет подписанного сертификата, сгенерируйте его сами:

$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 30000 -nodes

Теперь можно запустить SSH по SSL:

$ node app.js --sslkey key.pem --sslcert cert.pem -p 3000

Запуск wetty через nginx

Пример конфига nginx:

location /wetty {
proxy_pass http://127.0.0.1:3000/wetty;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 43200000;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}

Если вы запускаете app.js от пользователя root и используете Nginx в качестве прокси, то используйте:

http://yourserver.com/wetty

Если вы запускаете app.js от обычного пользователя, то используйте:

http://yourserver.com/wetty/ssh/<username>

Замечание: Если nginx настроен на работу по HTTPS, запускайте wetty по HTTP.

Запуск wetty в качестве демона

Для начала установим wetty глобально, используя параметр `-g`

$ sudo npm install wetty -g
$ sudo cp /usr/local/lib/node_modules/wetty/bin/wetty.conf /etc/init
$ sudo start wetty

Последняя команда запускает wetty 3000 порту. Для изменения порта или перенаправления ввода/вывода (stdout/stderr) вам необходимо изменить пару строк в конфиге wetty.conf, например так:

$ exec sudo -u root wetty -p 80 >> /var/log/wetty.log 2>&1