私はnet-sshのドキュメントを読みましたが、私はまだ困惑しています。手動で(ssh -i ...を使用して)認証することができます。また、キーをファイルに置き、:keysパラメータを使用して認証することもできます。しかし、:keysパラメータを使用したくないので、:key_dataパラメータを使用します。誰かが実用的な例を与えることができますか?なんらかの理由で、key_dataに文字列を直接供給していないため、「PUBキーもPRIVキー::入れ子asn1エラーもありません」というエラーが表示されます。もちろん、私はそれをgoogled、それは基本的にPEM形式でキーを確認するように指示します。もちろん、そうです。何か案は?必要に応じてもっと詳細な情報を提供することができます。Rubyとnet-sshを使用して、Net :: SSH.startでkey_dataパラメータを使用して認証するにはどうすればよいですか?
5
A
答えて
9
私はこの質問をかなり古くから見ていますが、私は同じ問題を抱えていて、ちょうど解決しました。
次のコードでは、RSAキーを含む文字列はどこにもインデントされていないことに注意してください。キーの2行目には先頭にスペースがありません。 TextMateは、キーを貼り付けたときにこれを貼り付けました。削除したところ、魅力的でした。私は、ライブラリの周りに掘った後、自分自身を発見し、もう少し情報を追加している
#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'
HOST = '172.20.0.31'
USER = 'root'
KEYS = [ "-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAqccvUza8FCinI4X8HSiXwIqQN6TGvcNBJnjPqGJxlstq1IfU
kFa3S9eJl+CBkyjfvJ5ggdLN0S2EuGWwc/bdE3LKOWX8F15tFP0=
-----END RSA PRIVATE KEY-----" ]
Net::SSH.start(HOST, USER, :key_data => KEYS, :keys_only => TRUE) do|ssh|
result = ssh.exec!('ls')
puts result
end
6
...
2.9.2以来、あなたの意図はkey_dataで提供される唯一のキーを使用する場合、あなたkey_dataを読み込む前にブランクのキーセットを指定する必要があります。そうしないとデフォルトのキーが読み込まれます。
私の場合、ロードしようとしたアイデンティティファイルの1つはパスフレーズで保護されていたので、自分のパスフレーズを求めましたが、私の意図はそのファイルを全く使わないことでした。上記の例を使用して
、2.9.2で、あなたはこのような何かを行うことによって同じ効果を得ることができます。
#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'
HOST = '172.20.0.31'
USER = 'root'
KEYS = [ "-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAqccvUza8FCinI4X8HSiXwIqQN6TGvcNBJnjPqGJxlstq1IfU
kFa3S9eJl+CBkyjfvJ5ggdLN0S2EuGWwc/bdE3LKOWX8F15tFP0=
-----END RSA PRIVATE KEY-----" ]
Net::SSH.start(HOST, USER, :keys => [], :key_data => KEYS, :keys_only => TRUE) do|ssh|
result = ssh.exec!('ls')
puts result
end
関連する問題
- 1. Net :: HTTPでPOSTリクエストのトークンを使用して認証するにはどうすればよいですか?
- 2. ノードアプリケーションでDjango認証を使用してユーザーを認証するにはどうすればよいですか?
- 3. ホットタオルでロールを使用してWindows認証を使用するにはどうすればよいですか?
- 4. .netでServiceAccountを使用してGoogle OAuth2を使用するにはどうすればよいですか?
- 5. NTLMを使用してWCF Webサービスでコンソールアプリケーションを認証するにはどうすればよいですか?
- 6. PHPのSDKを使用してFacebookで再認証を行うにはどうすればよいですか?
- 7. Dropwizardを使用してHMAC認証をテストするにはどうすればよいですか?
- 8. jQueryを使用してWindows認証をWebサービスに渡すにはどうすればよいですか?
- 9. node.js + Passportを使用してIOSでfacebook loginを認証するにはどうすればいいですか
- 10. SignalR(.NETクライアント)でカスタム基本認証を使用するにはどうすればよいですか?
- 11. C#でDLLImportを構造体のパラメータとして使用するにはどうすればよいですか?
- 12. Basic認証を使用してJQueryを使用してJSONP呼び出しを行うにはどうすればよいですか?
- 13. RVMを使用してrubyとgemをアンインストールするにはどうすればよいですか?
- 14. Aptana Studio 3とrbenvを使用してRubyスクリプトをデバッグするにはどうすればよいですか?
- 15. HIMAGELIST(SetupDiGetClassImageListから)を.NET ImageListとして使用するにはどうすればよいですか?
- 16. プレーンなHTTP認証とPHPを使用して、Apacheで認証されたユーザー名を取得するにはどうすればよいですか?
- 17. 具体的に「[]」をパラメータとして使用するにはどうすればよいですか?
- 18. WCFバックエンドを使用してWPFでデータ検証に.NETデータ注釈を正しく使用するにはどうすればよいですか?
- 19. Javascriptを使用してCookie認証を使用してJSONデータを取得するにはどうすればよいですか?
- 20. PHPとJavaScriptを使用してセンテンスを検証するにはどうすればよいですか?
- 21. Rubyを使用してHTTP経由でファイルをダウンロードするにはどうすればよいですか?
- 22. Rubyを使用してGUIでメニューをテストするにはどうすればよいですか?
- 23. genericクラスのtypeクラスのオブジェクトをパラメータとして使用するにはどうすればよいですか? -
- 24. EメールアドレスをレールPUTリクエストのパラメータとして使用するにはどうすればよいですか?
- 25. Rubyでoauthを使用してGoogleに接続するにはどうすればよいですか?
- 26. Resttemplateを使用してアクセスしているときに認証されたjenkins xml apiを取得するにはどうすればよいですか?
- 27. .NETを使用してプログラムでユーザー名とパスワードを使用してTwitterにログインするにはどうすればよいですか?
- 28. NDKを使用してcコードを使用してAPIレベルを実行しているデバイスを確認するにはどうすればよいですか?
- 29. WSDLファイルを使用して.NETでプロキシクラスを作成するにはどうすればよいですか?
- 30. PerlでNet :: SMPPを使用してSMSを送信するにはどうすればよいですか?
'/usr/share/ruby/2.0/socket.rb:232:inを取得'getaddrinfo':ArrayをStringに暗黙的に変換しない(TypeError) ' – sixty4bit