GNU/Linux >> Belajar Linux >  >> Linux

Cara membuat terminal berbasis web menggunakan xterm.js untuk ssh ke sistem di jaringan lokal

Setelah sedikit riset, inilah kode yang berfungsi.

Perpustakaan:

1) https://socket.io/

Pustaka ini digunakan untuk mengirimkan paket dari klien ke server.

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

Pustaka ini digunakan untuk tampilan terminal.

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

Ini adalah perpustakaan utama yang digunakan untuk membuat koneksi dengan server jarak jauh Anda.

Langkah 1:Instal Library 3 ke dalam folder proyek Anda

Langkah 2:Mulai dari sisi node buat sebuah server.js file untuk soket terbuka

Langkah 3:Sambungkan soket klien ke server node (keduanya ada di mesin lokal)

Logika rumitnya adalah bagaimana menggunakan socket dan ssh2.

Saat mengeluarkan soket, Anda perlu memicu perintah SSH menggunakan pustaka ssh2. Sebagai tanggapan dari perpustakaan ssh2 (dari server), Anda perlu mengirimkan paket soket ke klien. Itu saja.

Klik di sini untuk menemukan contoh.

Contoh itu akan memiliki file &folder ini:

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

Pertama, Anda perlu mengonfigurasi IP server, pengguna dan kata sandi atau file sertifikat di server.js dan jalankan node server.js .

P.S.:Jangan lupa untuk menjalankan npm install

Beri tahu saya jika Anda memiliki pertanyaan!


Setelah beberapa penelitian kemudian saya menemukan layanan ini:https://tmate.io/ yang berfungsi dengan baik. Meskipun jika Anda memerlukan terminal tmate berbasis web, Anda harus menggunakan server ssh mereka sebagai proxy terbalik yang idealnya tidak nyaman bagi saya. Namun, mereka menyediakan tmate-server yang dapat digunakan untuk menghosting server proxy balik Anda sendiri tetapi tidak memiliki UI web. Tetapi untuk membangun sistem di mana Anda harus mengakses klien di balik NAT melalui ssh di web, berikut adalah langkah-langkahnya.

  • Instal dan konfigurasikan tmate-server di beberapa mesin cloud.
  • Instal tmate di sisi klien dan konfigurasikan untuk terhubung ke mesin cloud.
  • Buat aplikasi nodejs menggunakan xterm.js (mudah karena komunikasi berbasis WebSocket) yang terhubung ke server tmate Anda dan meneruskan perintah ke klien masing-masing. (Hati-hati terhadap masalah keamanan saat membuka aplikasi ini, karena Anda akan meneruskan perintah Linux ).
  • Bergantung pada kasus penggunaan Anda, Anda mungkin memerlukan pembungkus kecil di sekitar klien tmate di sisi klien untuk memulai/menghentikannya secara otomatis atau melalui beberapa UI/tindakan manual.

Catatan:Saya juga menulis pembungkus kecil di sisi klien untuk memulai/menghentikan dan meneruskan informasi yang diperlukan ke server API (ditulis dalam nodejs) yang kemudian meneruskan informasi tersebut ke API lain yang menghubungkan browser ke sesi klien masing-masing . Karena kami telah menulis aplikasi ini, itu termasuk otentikasi serta pembatasan perintah dari apa yang dapat dijalankan di terminal. Anda dapat banyak menyesuaikannya.


Linux
  1. Cara menuju ke layanan/server yang berada di jaringan yang tidak dapat diakses (menggunakan terowongan SSH)

  2. Bagaimana Cara Ssh Ke Server Menggunakan Server Lain??

  3. Bagaimana cara mengunduh file dari server menggunakan SSH?

  1. SSHPass:Cara SSH ke server menggunakan skrip tanpa kata sandi (non-interaktif)

  2. [Linux] :Shellinabox – Akses berbasis web ke Terminal SSH Anda

  3. Bagaimana cara mengizinkan SSH ke Terminal setelah terhubung ke server VPN menggunakan server NordVPN melalui OpenVPN?

  1. Bagaimana cara mereset kata sandi Admin Plesk menggunakan SSH di Server Linux?

  2. Bagaimana cara mengembalikan database MySQL menggunakan perintah di SSH?

  3. Cara SCP dari server linux ke klien Windows