問題タブ [net-ssh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1140 参照

ruby-on-rails - ruby on rails ssh接続の有効性チェック

コントローラーで ssh 接続を確立し、接続が正常に確立された場合にビューを表示しています。接続が確立されていない場合は、「denied_access」ビューにリダイレクトするアクションが必要です。使用者が詳細を入力するビューは次のとおりです。

コントローラーの有効性チェックアクション:

ここで接続が確立され、resutl 内の Informatica Developer 文字列がチェックされ、にリダイレクトされdisplay_command_list_pathます。しかし、この文字列を確認する前に接続が確立されているかどうかを確認し、接続が確立されていない場合は denied_access_path にリダイレクトしたいと考えています。どうやってやるの?

0 投票する
1 に答える
1611 参照

ruby - Net::SSH (Ruby) を使用した複数の SSH ホップ

だからここに私のセットアップがあります:

ラップトップ -> ホスト 1 -> ホスト 2 -> ホスト 3

ラップトップはホスト 1 に到達できるが、ホスト 2 またはホスト 3
に到達できない ホスト 1 はホスト 2 に到達できるが、ホスト 3 に到達できない ホスト 3
はホスト 2 に到達できるが、ホスト 1 に到達できない

私がやろうとしているのは、リモート転送をセットアップして、ホスト 3 で実行されているプロセスがラップトップで実行されているサービスにルーティングされるようにすることです。次のコードを使用してこれを正常に実行しました。

ラップトップから実行:

1 つのスレッドで、ラップトップからホスト 1 へのリモート転送を設定し、次にホスト 1 からホスト 2 への別のリモート転送を設定しています。別のスレッドで、ラップトップからホスト 3 への別の接続を開始してから、ローカルホスト 3 からホスト 2 に転送します。

ラップトップからホスト 3 に接続できる唯一の方法は、ラップトップからホスト 3 に接続しようとすると、ホスト 1 とホスト 2 を介して自動的にルーティングされる .ssh/config ファイルによるものです。

私がやりたいことは、.ssh/config ファイルへの依存関係を削除できるように、ラップトップからホスト 3 に接続している 2 番目のスレッドを切り取ることです。最初のスレッド内からすべての接続を行いたいです。

したがって、基本的に、ラップトップから発信された複数のホップを実行する必要があります。ラップトップからホスト 1 への最初の接続を開始してから、ホスト 1 でコマンドを実行できますが、その後はそれ以上進むことができません。私がする必要があるのは、ラップトップからホスト 1 への接続を開始し、ホスト 1 で転送をセットアップし、ホスト 1 からホスト 2 に接続してから、ホスト 2 で 2 番目の転送をセットアップすることです。

これは net/ssh で可能ですか?

ご協力いただきありがとうございます!

0 投票する
1 に答える
548 参照

ruby - kill pid は gem net-ssh で開始

net/ssh gem を使用してリモート サーバーでコマンドを開始し、コマンドがデッドロック状態になっている場合、リモート サーバーで実行されているプロセスの pid を見つけて強制終了するにはどうすればよいでしょうか?

net/ssh gem はこれをサポートしていますか?

0 投票する
1 に答える
1567 参照

ruby - インタラクティブなプロンプトを使用してbashスクリプトを呼び出すrubynet-ssh

私はあなたが私を助けてくれることを願っています問題があります

私はrubyを使用してマシンにSSHで接続し、bashスクリプトを実行しようとしています。この部分はかなり簡単ですが、bashスクリプトではユーザー名とパスワードをインタラクティブに入力する必要があり、ここで行き詰まります。

したがって、スクリプトを手動で実行すると、次のようになります。-

したがって、ユーザー名の入力プロンプトで、ユーザー名などを入力する必要があります

接続を確立するために使用する簡単な方法があります。私のアイデアは、で構成される配列を渡すことでした。

しかし、プロンプトに応答するためにNet::SSH呼び出しを拡張する方法がわかりません

誰もがアイデアを得た

0 投票する
1 に答える
960 参照

ruby - Ruby Net::SSH は PTY で終了ステータスを取得します

私のプロジェクトのために、Net::SSH::Telnet ライブラリにいくつかの機能を書き込もうとしています。具体的には、私が書いたコマンドの終了ステータスを読み取ることができる必要があります。

これは、私が変更している Net::SSH::Telnet ライブラリの元のソースです。

そして今、私が行った変更は次のとおりです。

問題は、これを実行すると、@exit_code 変数が nil から変更されないことです。

私がこれを行っている理由は、次の 3 つの主要な機能が必要だからです。 3. プロンプトに応答する機能

私は Net::SSH::Telnet を選択して調整しました。なぜなら、それはすでに 1 と 3 を提供していたからです。2 番をサポートする
ように修正できると考えました。Net::SSH::Telnet の残りのソースは次のとおりです。

https://github.com/jasonkarns/net-ssh-telnet/

ここにはレポの分岐バージョンがあり、プルリクエストを喜んで受け入れます。

https://github.com/0x783czar/net-ssh-remotescript

また、これらの 3 つの機能を提供する他の Ruby ライブラリの提案があれば、どんな提案でも大歓迎です。

0 投票する
1 に答える
701 参照

ruby - ruby net-ssh を介して bin フォルダー内のコマンドにアクセスする方法は?

サーバーに接続するために net-ssh を使用しており、いくつかの ruby​​ コマンドを実行する必要があります。

以下は機能しません。

私は常にフルパスを指定する必要があります:

そして、それは一般的な他のコマンド(rvmなど)でも同様です.

bin フォルダーにあるコマンドをロードするオプションはありますか?

0 投票する
1 に答える
851 参照

ruby - 複数の SSH トンネルで MySQL クエリを実行しますか?

「 Ruby で ssh トンネルを作成し、リモート ホストの mysql サーバーに接続する方法」に似た状況があります。

ローカル マシンから、実稼働の MySQL データベース ホストに対してクエリを実行したいと考えています。ローカル マシンがデータベース ホストに直接接続できません。ただし、ゲートウェイ マシンに SSH 接続すると、MySQL クライアントを実行してデータベース ホストに接続できます。

私のマシンからプログラムでクエリを実行し、それをゲートウェイ マシンに転送してデータベース サーバーに転送し、結果を返す方法を見つけようとしています。LOCAL => GATEWAY => DB_HOST基本的には転送したいです。

以下に示すように、コマンドラインでMySQLを実行するハックなソリューションがssh.execありますが、ポート転送を2回行う方法を見つけようとしています。やってみましたが、今のところ成功していません。

助言がありますか?

0 投票する
2 に答える
591 参照

rvm - net-ssh を介してサーバー上に RVM 環境を作成する方法は?

サーバーに Ruby/RVM (およびその他) をインストールして、Rails プロジェクトをデプロイする環境を準備するスクリプトがあります。このスクリプトは ruby​​ にあり、net-ssh lib を使用してジョブを実行します。

RVM と Ruby をインストールした後、プロジェクト Gemset を作成したいと思います。

私は自分のgemsetを以下に作成しました。

/usr/local/rvm/gems/ruby-1.9.3-p286@my_project_name

rvm/ruby の Capistrano 設定は次のとおりです。

カピストラーノを使用してデプロイしようとすると、次のようになります。

/usr/local/rvm/environments/ruby-1.9.3-p286@my_project_name: 権限が拒否されました

環境ファイル「ruby-1.9.3-p286@my_project_name」は、実際にはそのフォルダーにありません。サーバーにログインして自分のプロジェクトに移動し、.rvmrc ファイルで環境の作成をトリガーする必要があります (rvm --create my_project_name)。この最後のステップは避けたいと思います。この環境の作成をトリガーする方法を知っていますか? (Gemsetを作成したときに作成されると思いますが)

0 投票する
0 に答える
536 参照

ruby - Ruby: Net::SSH::Multi キーを使用

Net::SSH::Multi ライブラリを動作させるのに問題があります。各ボックスに接続してそのコマンドを実行する必要があります。出力を取得しようとしています。

これが私のコードです:

そして、実行から得られる応答は次のとおりです。