Node.jsを使ったSSHの実装方法を詳しく解説
SSH は、特にリモート アクセスと制御において、コンピュータ間の安全なデータ通信を可能にする暗号化されたネットワーク プロトコルです。
Node.js は Chrome V8 エンジンに基づく JavaScript ランタイム環境で、効率的でスケーラブルなネットワーク アプリケーションの構築に役立ちます。この記事では、Node.js を使用して SSH を実装する方法を学びます。
- Node.js のインストール
Node.js を使用する前に、まずインストールする必要があります。公式 Web サイトからインストール パッケージをダウンロードし、指示に従ってインストールできます。
- SSH2 モジュールのインストール
Node.js では、SSH2 モジュールを使用して SSH を実装できます。 SSH2 は、Node.js で実行される SSH2 クライアントおよびサーバー側ライブラリの純粋な JavaScript 実装です。
npm パッケージ マネージャーを使用して SSH2 モジュールをインストールできます:
npm install ssh2
インストールが完了したら、SSH2 モジュールの使用を開始できます。
- SSH サーバーへの接続
SSH2 モジュールを使用する前に、まず SSH 接続を確立する必要があります。
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', });
この例では、まず SSH2 モジュールの Client クラスをインポートし、次に SSH クライアント接続オブジェクト conn を作成します。
接続オブジェクトでは、ready イベントをリッスンできます。このイベントは、接続が正常に確立された後にトリガーされ、「接続済み」情報を出力します。最後に、 conn.end() メソッドを呼び出して接続を閉じます。
接続オプションでは、ターゲット SSH サーバーのアドレス、ポート、ユーザー名、およびパスワード情報を指定する必要があります。
- SSH コマンドの実行
接続が正常に確立されたら、SSH2 モジュールを使用してリモート コマンドを実行できます。
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', });
この例では、conn.exec() メソッドを呼び出して ls コマンドを実行し、コールバック関数に渡します。
コマンドの実行時にエラーが発生した場合、コールバック関数は例外をスローします。コマンドが正常に実行されると、読み取り可能なストリーム オブジェクト ストリームが取得されます。
ストリーム オブジェクトの close イベントをリッスンできます。このイベントはコマンド実行の最後にトリガーされ、終了コードを出力します。同時にストリームオブジェクトのデータイベントとstderrイベントもリッスンし、それぞれ標準出力とエラー出力情報を出力します。
最後に、イベント ハンドラー関数で conn.end() メソッドを呼び出して、接続を閉じます。
- ファイル転送
コマンドのリモート実行に加えて、SSH2 モジュールはファイル転送機能もサポートしています。
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(); }); });
この例では、 conn.sftp() メソッドを呼び出して、ファイル転送機能を提供する SFTP オブジェクトを取得します。
sftp.fastPut() メソッドを使用して、ローカル ファイルをリモート サーバーに迅速に転送します。転送が完了すると、「ファイル転送が完了しました」というメッセージを出力し、接続を閉じます。
- 概要
この記事では、SSH2 モジュールを使用してプログラムで SSH を実装する方法を学習しました。まず SSH サーバーに接続し、次にコマンドとファイル転送を実行します。 Node.js と SSH2 モジュールを使用すると、効率的でスケーラブルなネットワーク アプリケーションを構築するための SSH 機能を簡単に実装できます。
以上がNode.jsを使ったSSHの実装方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

このチュートリアルでは、カスタムGoogle検索APIをブログまたはWebサイトに統合する方法を示し、標準のWordPressテーマ検索関数よりも洗練された検索エクスペリエンスを提供します。 驚くほど簡単です!検索をyに制限することができます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

この記事シリーズは、2017年半ばに最新の情報と新鮮な例で書き直されました。 このJSONの例では、JSON形式を使用してファイルに単純な値を保存する方法について説明します。 キー価値ペア表記を使用して、あらゆる種類を保存できます

コードプレゼンテーションを強化する:開発者向けの10個の構文蛍光物 ウェブサイトやブログでコードスニペットを共有することは、開発者にとって一般的な慣行です。 適切な構文ハイライターを選択すると、読みやすさと視覚的な魅力を大幅に改善できます。 t

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

この記事では、JavaScriptとJQuery Model-View-Controller(MVC)フレームワークに関する10を超えるチュートリアルの厳選された選択を紹介します。これは、新年にWeb開発スキルを向上させるのに最適です。 これらのチュートリアルは、Foundatioのさまざまなトピックをカバーしています

コアポイント これは通常、メソッドを「所有」するオブジェクトを指しますが、関数がどのように呼び出されるかに依存します。 現在のオブジェクトがない場合、これはグローバルオブジェクトを指します。 Webブラウザでは、ウィンドウで表されます。 関数を呼び出すと、これはグローバルオブジェクトを維持しますが、オブジェクトコンストラクターまたはそのメソッドを呼び出すとき、これはオブジェクトのインスタンスを指します。 call()、apply()、bind()などのメソッドを使用して、このコンテキストを変更できます。これらのメソッドは、与えられたこの値とパラメーターを使用して関数を呼び出します。 JavaScriptは優れたプログラミング言語です。数年前、この文はそうでした
