--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: configuration_for
- !ruby/object:RI::MethodSummary 
  name: start
comment: 
- !ruby/struct:SM::Flow::P 
  body: Net::SSH is a library for interacting, programmatically, with remote processes via the SSH2 protocol. Sessions are always initiated via Net::SSH.start. From there, a program interacts with the new SSH session via the convenience methods on Net::SSH::Connection::Session, by opening and interacting with new channels (Net::SSH::Connection:Session#open_channel and Net::SSH::Connection::Channel), or by forwarding local and/or remote ports through the connection (Net::SSH::Service::Forward).
- !ruby/struct:SM::Flow::P 
  body: The SSH protocol is very event-oriented. Requests are sent from the client to the server, and are answered asynchronously. This gives great flexibility (since clients can have multiple requests pending at a time), but it also adds complexity. Net::SSH tries to manage this complexity by providing some simpler methods of synchronous communication (see Net::SSH::Connection::Session#exec!).
- !ruby/struct:SM::Flow::P 
  body: In general, though, and if you want to do anything more complicated than simply executing commands and capturing their output, you'll need to use channels (Net::SSH::Connection::Channel) to build state machines that are executed while the event loop runs (Net::SSH::Connection::Session#loop).
- !ruby/struct:SM::Flow::P 
  body: Net::SSH::Connection::Session and Net::SSH::Connection::Channel have more information about this technique.
- !ruby/struct:SM::Flow::H 
  level: 1
  text: "&quot;Um, all I want to do is X, just show me how!&quot;"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: X == &quot;execute a command and capture the output&quot;
- !ruby/struct:SM::Flow::VERB 
  body: "  Net::SSH.start(&quot;host&quot;, &quot;user&quot;, :password =&gt; &quot;password&quot;) do |ssh|\n    result = ssh.exec!(&quot;ls -l&quot;)\n    puts result\n  end\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: X == &quot;forward connections on a local port to a remote host&quot;
- !ruby/struct:SM::Flow::VERB 
  body: "  Net::SSH.start(&quot;host&quot;, &quot;user&quot;, :password =&gt; &quot;password&quot;) do |ssh|\n    ssh.forward.local(1234, &quot;www.google.com&quot;, 80)\n    ssh.loop { true }\n  end\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: X == &quot;forward connections on a remote port to the local host&quot;
- !ruby/struct:SM::Flow::VERB 
  body: "  Net::SSH.start(&quot;host&quot;, &quot;user&quot;, :password =&gt; &quot;password&quot;) do |ssh|\n    ssh.forward.remote(80, &quot;www.google.com&quot;, 1234)\n    ssh.loop { true }\n  end\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: This is the set of options that Net::SSH.start recognizes. See Net::SSH.start for a description of each option.
  name: VALID_OPTIONS
  value: "[       :auth_methods, :compression, :compression_level, :config, :encryption,       :forward_agent, :hmac, :host_key, :kex, :keys, :key_data, :languages,       :logger, :paranoid, :password, :port, :proxy, :rekey_blocks_limit,       :rekey_limit, :rekey_packet_limit, :timeout, :verbose,       :global_known_hosts_file, :user_known_hosts_file, :host_key_alias,       :host_name, :user, :properties, :passphrase"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Try to load Highline and Termios in turn, selecting the corresponding PromptMethods module to use. If neither are available, choose PromptMethods::Clear.
  name: Prompt
  value: begin       require 'highline'
full_name: Net::SSH
includes: []

instance_methods: []

name: SSH
superclass: 
