# Net::SSH problems

**URL:** <https://www.ruby-forum.com/t/net-ssh-problems/139730>\
**Category:** Ruby\
**Created:** [June 6, 2008, 1:34pm UTC](https://www.ruby-forum.com/t/net-ssh-problems/139730 "2008-06-06T13:34:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 6, 2008, 1:34pm UTC](https://www.ruby-forum.com/t/net-ssh-problems/139730/1 "2008-06-06T13:34:52Z")

</div>

I am trying to connect to one of our UNIX servers. I can connect and can  
validate myself but I cant seem to figure out how to ‘cd’ to another  
directory besides my ‘/home’ directory and then execute commands from  
the new directory.

below is what I have so far and each time I execute this I receive the  
below error  
-----ERROR------  
C:/ruby/test/SSHtest.rb:75: undefined method `shell' for #<Net::SSH::Connection::Session:0x2e5bf30> (NoMethodError) from c:/ruby/lib/ruby/site_ruby/1.8/net/ssh.rb:189:in`start’  
from C:/ruby/test/SSHtest.rb:72  
-----CODE-----  
Net::SSH.start( “hostname”, “username”, :password =\> “Password” ) do  
|session|  
shell = session.shell.open

# script what we want to do

shell.pwd  
shell.cd “/”  
shell.pwd  
shell.test “-e foo”  
shell.cd “/file/trying/to/cd/to”  
shell.send\_data “program\n”  
shell.pwd  
shell.exit

# give the above commands sufficient time to terminate

sleep 0.5

# display the output

$stdout.print shell.stdout while shell.stdout?  
$stderr.puts “-- stderr: --”  
$stderr.print shell.stderr while shell.stderr?

end

* * *

- I would greatly appreciate any help.

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 6, 2008, 6:01pm UTC](https://www.ruby-forum.com/t/net-ssh-problems/139730/2 "2008-06-06T18:01:08Z")

</div>

On Jun 6, 12:33 pm, Bob S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ```
> from c:/ruby/lib/ruby/site_ruby/1.8/net/ssh.rb:189:in `start'
> 
> ```
> 
> shell.cd “/file/trying/to/cd/to”  
> end
> 
> * * *
> 
> - I would greatly appreciate any help.  
> –  
> Posted viahttp://www.ruby-forum.com/.

Not sure what is wrong - I do something similar (this is snipped from  
a bigger application, so it may not be the most idiomatic way to do  
this, but it seems to work):

Net::SSH.start( CONFIG[‘target\_machine’], CONFIG[‘user’],  
CONFIG[‘password’] ) do |session|  
shell = session.shell.sync  
shell.send\_command ‘y’ # To answer the 'are you allow to  
authorize this computer questions

```
  commands = [
    "cd #{remote_dir}",
    "chmod 777 somescript.ksh",
    "./somescript.ksh"
    ]

  commands.each do |c|
    out = shell.send_command c
  end

```

end

I know the ‘build an array of commands’ is silly here, but as I said  
its part of a bigger app - it does the ‘cd’, ‘chmod’ and runs the  
script with no issues however.

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 9, 2008, 2:14pm UTC](https://www.ruby-forum.com/t/net-ssh-problems/139730/3 "2008-06-09T14:14:42Z")

</div>

stephen O’D wrote:

> On Jun 6, 12:33 pm, Bob S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > ```
> > from c:/ruby/lib/ruby/site_ruby/1.8/net/ssh.rb:189:in `start'
> > 
> > ```
> > 
> > shell.cd “/file/trying/to/cd/to”  
> > end
> > 
> > * * *
> > 
> > - I would greatly appreciate any help.  
> > –  
> > Posted viahttp://www.ruby-forum.com/.
> 
> Not sure what is wrong - I do something similar (this is snipped from  
> a bigger application, so it may not be the most idiomatic way to do  
> this, but it seems to work):
> 
> Net::SSH.start( CONFIG[‘target\_machine’], CONFIG[‘user’],  
> CONFIG[‘password’] ) do |session|  
> shell = session.shell.sync  
> shell.send\_command ‘y’ # To answer the 'are you allow to  
> authorize this computer questions
> 
> ```
> commands = [
> "cd #{remote_dir}",
> "chmod 777 somescript.ksh",
> "./somescript.ksh"
> ]
> 
> commands.each do |c|
> out = shell.send_command c
> end
> 
> ```
> 
> end
> 
> I know the ‘build an array of commands’ is silly here, but as I said  
> its part of a bigger app - it does the ‘cd’, ‘chmod’ and runs the  
> script with no issues however.

I tried the above and I still get the same error.

#Net::SSH::Connection::Session:0x2e5bf30 (NoMethodError)  
from c:/ruby/lib/ruby/site\_ruby/1.8/net/ssh.rb:189:in `start’  
from C:/ruby/test/SSHtest.rb:95

Any more ideas?

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 9, 2008, 9:50pm UTC](https://www.ruby-forum.com/t/net-ssh-problems/139730/4 "2008-06-09T21:50:27Z")

</div>

On Jun 9, 2:14 pm, Bob S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > > Posted viahttp://www.ruby-forum.com/.
> 
> Any more ideas?

What version of Ruby are you using?

In the first same looks like you’re using ruby builtin Net::SSH  
support, but dunno if shell is being part of a Session instance.

On the second example, looks like it even worse, but looking at the  
line numbers (95!) seems you have a huge script.

Can you reproduce the problem in a small one and pastie it to us so we  
can trace it? (try providing the full backtrace to ease the task).

Thanks,

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 9, 2008, 9:56pm UTC](https://www.ruby-forum.com/t/net-ssh-problems/139730/5 "2008-06-09T21:56:11Z")

</div>

Luis L. wrote:

> On Jun 9, 2:14ï¿½pm, Bob S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > > > Posted viahttp://www.ruby-forum.com/.
> > 
> > Any more ideas?
> 
> What version of Ruby are you using?

when looking under C:\ruby\doc\ruby it shows ruby-1.8.5

> In the first same looks like you’re using ruby builtin Net::SSH  
> support, but dunno if shell is being part of a Session instance.
> 
> On the second example, looks like it even worse, but looking at the  
> line numbers (95!) seems you have a huge script.

it is line 95 because I have lines 3-70 commented out so what is showing  
in the first post is all that is being run and line 1 is require  
‘net/ssh’

> Can you reproduce the problem in a small one and pastie it to us so we  
> can trace it? (try providing the full backtrace to ease the task).
> 
> Thanks,
