問題タブ [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.
ruby-on-rails - Ruby Net:SSHコントロールマスター?
私は現在、多くの短いSSH接続を確立する必要があるRuby(Rails)アプリケーションを持っています。これは、Ruby Net :: SSHライブラリを使用して正常に機能しますが、コマンドを実行するたびにアプリがログインしてキーをネゴシエートする必要があるため、速度が遅すぎます。
Ruby Net :: SSHでコントロールマスターを有効にする方法はありますか?コマンドラインでのテストでは、接続がすでに開いている(キーがネゴシエートされるなど)ため、これにより(最初のログインの後の)ログインが非常に高速になります。
Net :: SSHでこれを行う方法がない場合、誰かがそれを行うことができる代替ライブラリを提案できますか?
これは一般的な要件であるに違いないと思いますので、誰かが助けてくれることを願っています。
ありがとう!
ruby - `authorized_keys`を使用したユーザー名なしのRubyとのSSH接続
authorized_keys
システムからコマンドを実行ssh 192.168.1.101
し、サーバー経由で接続できるように、プッシュを使用してサーバーを認証しました。
今、私は図書館で試しました、それは私のために働きませんでした
as、これは必須のユーザー名フィールドです。ユーザー名なしで欲しい。
だから、私はこれを試しました
コマンドを実行してくれます。@output
しかし、最初の例のように、出力を変数にしたいと思います。解決策を得ることができる宝石や方法はありますか?
ruby-on-rails-3 - rubygemnet-sshを使用してJuniperルーターを構成する
ruby net-ssh gemを使用して、JuniperM10iルーターに変更を加えられるようにしたいと思います。ただし、「configure」を送信した後、構成コマンドを送信できません。
たとえば、ssh経由でルーターにログインした後、次の3つのコマンドを発行したいと思います。
net-sshライブラリを使用して、次のことを試しましたが成功しませんでした。
実行すると、次の出力が得られます。
では、「configure」の後に「showsystem」コマンドを正しく渡すにはどうすればよいですか?
解決済み:
私は次の投稿に出くわしました:https ://stackoverflow.com/a/6807178/152852
ruby - Net:SSH 経由のエラー「非絶対ホーム」
問題のコード
これは「非絶対ホーム」を返します。実際、「ユーザー」にはホームディレクトリがあります。提案されたアプローチの 1 つは、~/.ssh/config を IdentityFile へのフル パスで変更することでした。これで問題は解決しませんでした。
これのクレイジーな部分は、irb またはコンソールから呼び出された場合にコードが正常に機能することです。クラスメソッド内から(同じコードで)呼び出そうとすると、「非絶対ホーム」エラーが返されます。
「ユーザー」は、コマンドラインから問題なくサーバーに ssh することもできます。サーバーはUbuntuを実行しています。
アップデート
@Phrogz に感謝 - これに対する修正は、ENV['HOME'] を '/home/deploy' に設定することでした。しかし、なぜ $HOME が "." に設定されているのかわかりません。サーバー上。したがって、私または他の誰かがそれを理解するまで、「回答」なしでこの質問を残します. 手動で HOME を設定しなければならないというのは、適切な解決策というよりも「ハック」のように感じますが、うまくいきます。
ruby - Net::SSH.exec コマンドによって返されるデータのサイズ制限はありますか?
以下のコードを使用して、リモート マシンのファイル リストを作成しようとしています。
ファイルの数が多い場合、exec コマンドから返されるデータは切り捨てられ、ファイルの部分的なリストのみが返されます。サイズの制限があるようです。増やす方法知ってる人いますか?
ruby-on-rails - そのようなファイルを読み込めません -- net/ssh/authentication/agent/socket (LoadError)
私が走ればrails s
Gemfile
1 秒は機能し、次の秒は機能しません。
このガイドに従って CKeditor 統合を修正しようとした後、作業を停止しました: https://github.com/galetahub/ckeditor
アップデート
このエラーは、私が Capistrano を使用していて、その gem に が必要なために発生しましたnet-ssh
。net-ssh
gem が 2.4 から 2.5.0 に更新されたため、問題が発生しました。
Gemfile を更新しました:
それから走った$ gem update net-ssh
そして、rails s コマンドのエラーが消えました。Capistrano をまだデプロイに使用していないため、デプロイを使用してエラーが発生しているかどうかはわかりません。
更新 2
Capistrano がデプロイに失敗したので、めちゃくちゃです。使用cap deploy
すると、投稿の冒頭に表示されるエラー メッセージが表示されます。
アップデート 3
誰かが言及したコメントで壊れていたため、にアップグレードnet-ssh
しました。アップグレード後、必要な問題は解決されましたが、Capistrano はまだデプロイされません。2.5.1
2.5.0
更新 4 (および回避策)
以下のコメントで、回避策が投稿されました。
- net-ssh のバージョンを 2.5.1 に保つ
- Capistrano でデプロイする前に、~/.ssh/known_hosts ファイルからサーバーの行を削除してください
- 一度デプロイできるようになりました。デプロイするたびに繰り返します。
ruby - net-ssh 接続のセットアップ時の SUPPORTED_TYPE エラー
誰かが以前にこのエラーを見たことがありますか? ソースでSUPPORTED_TYPEへの参照を見つけることができませんでした...
8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33: /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/ からの「マップ」 lib/net/ssh/known_hosts.rb:33: /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:27 からの「search_in」内: /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:237 の「search_for」で:「prepare_preferred_algorithms!」で from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:120:in `initialize' from /usr/lib/ruby/gems/ 1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79:/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5 から「新規」に。 1/lib/net/ssh/transport/session.rb:79: /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb から「初期化」します: 186: /usr/lib/ruby/gems/1 からの `new' で。
ruby - Ruby Net-SSH-Shell は実行から標準出力を取得します! 方法
.execute
Net-SSH-Shellのメソッドから stdout を取得するにはどうすればよいですか
古き良き Net-SSH を使えば、これは簡単です
私に与えますTue Jun 19 23:43:53 EDT 2012
しかし、シェルを使用しようとすると、プロセス オブジェクトが取得されます
私に与えます#<Net::SSH::Shell::Process:0x007fc809b541d0>
標準出力を簡単に取得する方法について、まばらなドキュメントには何も見つかりません。方法はありますが、その方法on_output
を使用しても効果がないようですexecute!
私も.execute!
好きにブロックを渡そうとしました
しかし、私はまだプロセスを取得します#<Net::SSH::Shell::Process:0x007fc809b541d0>
使用できる変数に標準出力が必要であり、実際のステートフル ログイン シェルが必要です。
何か案は?
編集
@vikhyatの提案と同じアイデアに沿って、私は試しました
しかしb
、コマンドが結果を返すことがわかっている場合でも、常に空です。
ruby - net:ssh から scp を呼び出す
セットアップは次のとおりです。
RubyスクリプトとサーバーBとCを実行しているサーバーAがあります.BからCにファイルを転送できる必要があります.
Net:SCP を使ってみましたが、2 つのリモート サーバー間の転送をセットアップする方法が見つかりませんでした。私ができる最善のことは、BからAに行き、次にAからCに行くことでした.
他の場所で見たコード例に基づいて、B に ssh し、そのサーバーから scp を呼び出そうとしています。
これは私にとってはうまくいきません。これは可能ですか?
ruby-on-rails - ruby on rails net ssh strickhostkeychecking=no
こんにちは、 にnet:ssh
つながりがありcontroller
ます。host name
接続の確立中に動的に変更する場合があります。ただし、初めてログインするときに、シェルは接続するかどうかの許可を求める場合があります。ウェブ経由で接続しているので、私に尋ねるポップアップが表示されませんでした。したがって、私は
https://groups.google.com/group/comp.lang.tcl/browse_thread/thread/ca0cd6ec905eb702"-oStrictHostKeyChecking=no"
を読み、ホストへの接続中にこのタグを
追加したいと考えています。私たちが知っているように、以下はレールの net::ssh の標準形式です
"-oStrictHostKeyChecking=no"
接続を確立するときに、この追加のパラメーターをどこに渡しますか?
私はすでに試しました
しかし、うまくいきません。助けてください