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.
Sebelum menggunakan Node.js, kita perlu memasangnya terlebih dahulu. Anda boleh memuat turun pakej pemasangan dari laman web rasmi dan ikut arahan untuk memasangnya.
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
Selepas pemasangan selesai, anda boleh mula menggunakan modul SSH2.
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', });
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.
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', });
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.
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(); }); });
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.
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!