summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authordelano <delano@solutious.com>2009-11-09 17:02:44 -0500
committerdelano <delano@solutious.com>2009-11-09 17:02:44 -0500
commit6d09a25a8109972acbc910b532647cbc382ff7f3 (patch)
tree311425e6fb716cb387ceb7288a342aa2a75fcfec /support
parent2fc2d203ed731888ed393449e6ececbc2ad3dfdd (diff)
downloadnet-ssh-6d09a25a8109972acbc910b532647cbc382ff7f3.tar.gz
Added SSH tunnel bug reproduction script
Diffstat (limited to 'support')
-rwxr-xr-xsupport/ssh_tunnel_bug.rb65
1 files changed, 65 insertions, 0 deletions
diff --git a/support/ssh_tunnel_bug.rb b/support/ssh_tunnel_bug.rb
new file mode 100755
index 0000000..abadf4d
--- /dev/null
+++ b/support/ssh_tunnel_bug.rb
@@ -0,0 +1,65 @@
+#!/usr/bin/ruby
+
+# SSH TUNNEL CONNECTION BUG
+# from: http://net-ssh.lighthouseapp.com/projects/36253/tickets/7-an-existing-connection-was-forcibly-closed-by-the-remote-host#ticket-7-3
+#
+# Steps to reproduce:
+#
+# * Start HTTP Proxy
+# * If running debian in EC2:
+# * apt-get install squid
+# * Add the following to /etc/squid/squid.conf:
+# acl localnet src 1.2.3.0/255.255.255.0
+# http_access allow localnet
+# icp_access allow localnet
+# visible_hostname netsshtest
+# * Start squid squid -N -d 1 -D
+# * Run this script
+# * Configure browser proxy to use localhost with LOCAL_PORT.
+# * Load any page, wait for it to load fully. If the page loads
+# correctly, move on. If not, something needs to be corrected.
+# * Refresh the page several times. This should cause this
+# script to failed with the error: "closed stream". You may
+# need to try a few times.
+#
+
+require 'highline/import'
+require 'net/ssh'
+
+LOCAL_PORT = 8080
+PROXY_PORT = 3128
+
+host, user = *ARGV
+abort "Usage: #{$0} host user" unless ARGV.size == 2
+
+puts "Connecting to #{user}@#{host}..."
+pass = ask("Password: ") { |q| q.echo = "*" }
+puts "Configure your browser proxy to localhost:#{LOCAL_PORT}"
+
+begin
+ session = Net::SSH.start(host, user, :password => pass)
+ session.forward.local(LOCAL_PORT, host, PROXY_PORT)
+ session.loop{true}
+rescue => e
+ puts e.message
+ puts e.backtrace
+end
+
+
+__END__
+
+$ ruby support/ssh_tunnel.rb host user
+Connecting to user@host...
+Password: ******
+Configure your browser proxy to localhost:8080
+closed stream
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/buffered_io.rb:99:in `send'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/buffered_io.rb:99:in `send_pending'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/connection/session.rb:236:in `block in postprocess'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/connection/session.rb:235:in `each'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/connection/session.rb:235:in `postprocess'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/connection/session.rb:203:in `process'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/connection/session.rb:161:in `block in loop'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/connection/session.rb:161:in `loop'
+/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.15/lib/net/ssh/connection/session.rb:161:in `loop'
+