From: Jamis Buck Date: 2006-02-15T00:36:55+09:00 Subject: Re: net/sftp 1.10 errors On Feb 14, 2006, at 6:03 AM, zdennis wrote: > I recently downloaded net/ssh 1.0.7 and net/sftp 1.1.0. But I get > problems with ruby 1.8.2, 1.8.3 on either windows, debian or ubuntu > boxes. > > require 'rubygems' > require 'net/sftp' > > sftp_sess = Net::SFTP.start 'host', 'username', 'password' > sftp_sess.put_file '/home/uberriffic/test.txt', '/home/uberriffic/ > remote_test.txt' > NoMethodError: private method `open' called for > # > from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/ > sftp/protocol/driver.rb:201:in `method_missing' > from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/ > sftp/operations/open.rb:27:in `perform' > from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/ > sftp/operations/abstract.rb:64:in `execute' > from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/ > sftp/session.rb:253:in `method_missing' > from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/ > sftp/session.rb:177:in `open_handle' > from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/ > sftp/session.rb:203:in `put_file' > from (irb):4 > from :0 Here are two workarounds: First, you can use a block to Net::SFTP.start: Net::SFTP.start(...) do |sess| sess.put_file(...) end Or, if you can't use the block format for whatever reason, be sure to call #connect after calling start: sess = Net::SFTP.start(...) sess.connect sess.put_file(...) Not sure why that connect isn't being called automatically, but I'll look into it. - Jamis