GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit webový terminál pomocí xterm.js pro ssh do systému v místní síti

Po chvilce zkoumání je zde funkční kód.

Knihovny:

1) https://socket.io/

Tato knihovna se používá pro přenos balíků z klienta na server.

2) https://github.com/staltz/xstream

Tato knihovna se používá pro zobrazení terminálu.

3) https://github.com/mscdex/ssh2

Toto je hlavní knihovna, která se používá pro navázání spojení s vaším vzdáleným serverem.

Krok 1:Nainstalujte knihovnu 3 do složky projektu

Krok 2:Začněte ze strany uzlu a vytvořte server.js soubor pro otevřený soket

Krok 3:Připojení klientského soketu k serveru uzlu (oba jsou v místním počítači)

Složitá logika je, jak používat socket a ssh2.

Při vysílání soketu musíte spustit příkaz SSH pomocí knihovny ssh2. Na odezvu knihovny ssh2 (ze serveru) musíte přenést balík soketu klientovi. To je ono.

Kliknutím sem najdete příklad.

Tento příklad bude mít tyto soubory a složky:

Type    Name
------------
FILE    server.js
FILE    package.json
FOLDER  src
FOLDER  xtream

Nejprve musíte nakonfigurovat IP serveru, uživatele a heslo nebo soubor certifikátu na server.js a stačí spustit node server.js .

P.S.:Nezapomeňte spustit npm install

Pokud máte nějaké dotazy, dejte mi vědět!


Po nějakém výzkumu později jsem narazil na tuto službu:https://tmate.io/, která dělá svou práci perfektně. Ačkoli pokud potřebujete webový terminál tmate, musíte použít jejich ssh servery jako reverzní proxy, což mi v ideálním případě nebylo příjemné. Poskytují však tmate-server, který lze použít k hostování vašeho vlastního reverzního proxy serveru, ale postrádá webové uživatelské rozhraní. Ale k vybudování systému, kde musíte přistupovat ke klientovi za NAT přes ssh na webu, níže jsou kroky.

  • Nainstalujte a nakonfigurujte tmate-server na nějakém cloudovém počítači.
  • Nainstalujte tmate na stranu klienta a nakonfigurujte připojení ke cloudovému počítači.
  • Vytvořte aplikaci nodejs pomocí xterm.js (snadné díky komunikaci založené na WebSocket), která se připojí k vašemu tmate-serveru a předá příkazy příslušnému klientovi. (Dejte si pozor na bezpečnostní problémy při odhalení této aplikace, protože budete předávat příkazy Linuxu).
  • V závislosti na vašem případu použití budete možná potřebovat malý obal kolem klienta tmate na straně klienta, který jej spustí/zastaví automaticky nebo pomocí nějaké uživatelské/manuální akce.

Poznámka:Napsal jsem také malý obal na straně klienta pro spuštění/zastavení a předání požadovaných informací serveru API (zapsaného v nodejs), který pak informace předá jinému API, které připojí prohlížeč k příslušné relaci klienta . Vzhledem k tomu, že jsme tuto aplikaci napsali, zahrnovala autentizaci i omezení příkazů toho, co lze na terminálu spustit. Můžete si to hodně přizpůsobit.


Linux
  1. SSHPass:Jak SSH na server pomocí skriptu bez hesla (neinteraktivně)

  2. [Linux] :Shellinabox – Webový přístup k vašemu SSH terminálu

  3. Jak SSH na server pomocí jiného serveru?

  1. Jak resetovat heslo správce Plesk pomocí SSH na serveru Linux?

  2. Jak obnovit databázi MySQL pomocí příkazu v SSH?

  3. Jak SCP z linuxového serveru na Windows klienta

  1. Jak se dostat ke službě/serveru, který je v nepřístupné síti (pomocí SSH tunelů)

  2. Jak stáhnout soubor ze serveru pomocí SSH?

  3. Jak povolit SSH do terminálu po připojení k serveru VPN pomocí serverů NordVPN přes OpenVPN?