Penjelasan terperinci tentang cara melaksanakan SSH menggunakan Node.js

PHPz
Lepaskan: 2023-04-05 09:49:27
asal
3009 orang telah melayarinya

SSH ialah protokol rangkaian yang disulitkan yang membenarkan komunikasi data selamat antara komputer, terutamanya untuk capaian dan kawalan jauh.

Node.js ialah persekitaran masa jalan JavaScript berdasarkan enjin Chrome V8, yang boleh membantu kami membina aplikasi web yang cekap dan berskala. Dalam artikel ini, kita akan belajar cara melaksanakan SSH menggunakan Node.js.

  1. Pasang Node.js

Sebelum menggunakan Node.js, kita perlu memasangnya terlebih dahulu. Anda boleh memuat turun pakej pemasangan dari laman web rasmi dan ikut arahan untuk memasangnya.

  1. Pasang modul SSH2

Dalam Node.js, kita boleh menggunakan modul SSH2 untuk melaksanakan SSH. SSH2 ialah pelaksanaan JavaScript tulen bagi klien SSH2 dan perpustakaan sisi pelayan yang dijalankan dalam Node.js.

Kami boleh menggunakan pengurus pakej npm untuk memasang modul SSH2:

npm install ssh2
Salin selepas log masuk

Selepas pemasangan selesai, anda boleh mula menggunakan modul SSH2.

  1. Sambung ke pelayan SSH

Sebelum menggunakan modul SSH2, kita perlu mewujudkan sambungan SSH terlebih dahulu.

const Client = require('ssh2').Client;

const conn = new Client();
conn.on('ready', () => {
  console.log('已连接');
  conn.end();
}).connect({
  host: 'x.x.x.x',
  port: 22,
  username: 'username',
  password: 'password',
});
Salin selepas log masuk

Dalam contoh ini, kami mula-mula mengimport kelas Klien modul SSH2, dan kemudian mencipta sambungan objek sambungan klien SSH.

Pada objek sambungan, kita boleh mendengar acara sedia, yang dicetuskan selepas sambungan berjaya diwujudkan dan mengeluarkan maklumat "bersambung". Akhir sekali, kami memanggil kaedah conn.end() untuk menutup sambungan.

Dalam pilihan sambungan, kami perlu memberikan maklumat alamat, port, nama pengguna dan kata laluan pelayan SSH sasaran.

  1. Laksanakan arahan SSH

Selepas sambungan berjaya diwujudkan, kita boleh menggunakan modul SSH2 untuk melaksanakan arahan jauh.

conn.on('ready', () => {
  console.log('已连接');
  conn.exec('ls', (err, stream) => {
    if (err) throw err;
    stream.on('close', (code, signal) => {
      console.log(`命令执行结束,退出码为:${code}`);
      conn.end();
    }).on('data', data => {
      console.log(`输出信息:${data}`);
    }).stderr.on('data', data => {
      console.log(`错误信息:${data}`);
    });
  });
}).connect({
  host: 'x.x.x.x',
  port: 22,
  username: 'username',
  password: 'password',
});
Salin selepas log masuk

Dalam contoh ini, kami memanggil kaedah conn.exec() untuk melaksanakan perintah ls dan menghantar dalam fungsi panggil balik.

Jika ralat berlaku semasa melaksanakan arahan, fungsi panggil balik akan membuang pengecualian. Jika arahan itu berjaya dilaksanakan, kami akan mendapat aliran objek aliran yang boleh dibaca.

Kita boleh mendengar acara tutup objek strim, yang dicetuskan pada penghujung pelaksanaan arahan dan mengeluarkan kod keluar. Pada masa yang sama, kami juga mendengar peristiwa data dan peristiwa stderr objek aliran, dan masing-masing mengeluarkan output standard dan maklumat output ralat.

Akhir sekali, kami memanggil kaedah conn.end() dalam fungsi pengendali acara untuk menutup sambungan.

  1. Pemindahan Fail

Selain pelaksanaan arahan jauh, modul SSH2 juga menyokong fungsi pemindahan fail.

conn.sftp((err, sftp) => {
  if (err) throw err;
  const localFile = '/path/to/local/file.txt';
  const remoteFile = '/path/to/remote/file.txt';
  sftp.fastPut(localFile, remoteFile, err => {
    if (err) throw err;
    console.log('文件传输完成');
    conn.end();
  });
});
Salin selepas log masuk

Dalam contoh ini, kami memanggil kaedah conn.sftp() untuk mendapatkan objek SFTP, yang menyediakan fungsi pemindahan fail.

Kami menggunakan kaedah sftp.fastPut() untuk memindahkan fail setempat ke pelayan jauh dengan cepat. Selepas pemindahan selesai, kami mengeluarkan mesej "Pemindahan fail selesai" dan menutup sambungan.

  1. Ringkasan

Dalam artikel ini, kami mempelajari cara melaksanakan SSH secara pemprograman menggunakan modul SSH2. Kami mula-mula menyambung ke pelayan SSH dan kemudian melaksanakan arahan dan pemindahan fail. Dengan Node.js dan modul SSH2, kami boleh melaksanakan fungsi SSH dengan mudah untuk membina aplikasi rangkaian yang cekap dan berskala.

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara melaksanakan SSH menggunakan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan