Net/ssh telnet set port 119 (nntp)

Following the API at:

http://rubydoc.info/gems/net-ssh-telnet/0.0.2/frames

I want to login to leafnode with something like:

s = Net::SSH::Telnet.new(:host => localhost,:port => 119)

here's what I have so far, though:

thufir@dur:~/ruby/telnet$
thufir@dur:~/ruby/telnet$ ruby telnet.rb
hello
telnet.rb:8:in `<main>': uninitialized constant Net::SSH::Telnet
(NameError)
thufir@dur:~/ruby/telnet$
thufir@dur:~/ruby/telnet$ nl telnet.rb
     1 require "rubygems"
     2 require "net/ssh"
       
     3 puts "hello"
       
     4 s = Net::SSH::Telnet.new(
     5 "Dump_log" => "/dev/stdout",
     6 "Host" => "127.0.0.1:119",
     7 )
       
     8 puts "Logged in"
     9 puts s.cmd("echo hello")
       
    10 put "started"
thufir@dur:~/ruby/telnet$
thufir@dur:~/ruby/telnet$ telnet localhost nntp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 Leafnode NNTP Daemon, version 1.11.8 running at localhost (my fqdn:
dur.bounceme.net)
quit
205 Always happy to serve!
Connection closed by foreign host.
thufir@dur:~/ruby/telnet$
thufir@dur:~/ruby/telnet$ telnet localhost 119
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 Leafnode NNTP Daemon, version 1.11.8 running at localhost (my fqdn:
dur.bounceme.net)
quit
205 Always happy to serve!
Connection closed by foreign host.
thufir@dur:~/ruby/telnet$

I've tried various ways of setting the port, but can't figure it out.
How do you set the port?

thanks,

Thufir

Ruby cookbook to the rescue, 14.9 "being a telnet client":

thufir@dur:~/ruby/net_telnet$
thufir@dur:~/ruby/net_telnet$ ruby net.rb
Read 491 bytes; total 491
thufir@dur:~/ruby/net_telnet$ nl net.rb
     1 require 'rubygems'
     2 require 'net/telnet'
       
     3 webserver = Net::Telnet::new('Host' => 'www.oreilly.com’,'Port'
=> 80,'TelnetMode' => false)
       
     4 size = 0
       
     5 webserver.cmd("GET / HTTP/1.1\nHost: www.oreilly.com\n") do |c|
     6 size += c.size
     7 puts "Read #{c.size} bytes; total #{size}"
     8 end
       
thufir@dur:~/ruby/net_telnet$

just need to login to leafnode now :slight_smile:

-Thufir

···

On Sun, 25 Mar 2012 19:49:44 +0900, Thufir wrote:

Following the API at:

File: README — Documentation for net-ssh-telnet (0.0.2)

I want to login to leafnode with something like:

s = Net::SSH::Telnet.new(:host => localhost,:port => 119)

Well, I don't get it, I have no idea why the sample code doesn't work for
me. It appears to be a matter of ?importing? the gem correctly. What's
the correct syntax, please? How do you know what the syntax is to ?
import? the gem correctly?

thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ ruby ssh.rb
trying to connect...
ssh.rb:10:in `<main>': undefined local variable or method `ssh' for
main:Object (NameError)
thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ nl ssh.rb
     1 require 'rubygems'
     2 require 'net/ssh/telnet'
       
     3 puts "trying to connect..."
       
     4 s = Net::SSH::Telnet.new(
     5 "Dump_log" => "/dev/stdout",
     6 "Session" => ssh
     7 )
     8 puts "Logged in"
     9 p s.cmd("echo hello")
thufir@dur:~/ruby/ssh$

thanks,

Thufir

···

On Sun, 25 Mar 2012 19:49:44 +0900, Thufir wrote:

File: README — Documentation for net-ssh-telnet (0.0.2)

I want to login to leafnode with something like:

4  s = Net::SSH::Telnet\.new\(
5          &quot;Dump\_log&quot; =&gt; &quot;/dev/stdout&quot;,
6          &quot;Host&quot; =&gt; &quot;127\.0\.0\.1:119&quot;,

s = Net::SSH::Telnet.new(
     "Dump_log" => "/dev/stdout",
      "Host" => "127.0.0.1",
      "Port" => 119 as part
...

Well, I don't get it, I have no idea why the sample code doesn't work for
me.

Because you're not using the sample code?

4  s = Net::SSH::Telnet\.new\(
5        &quot;Dump\_log&quot; =&gt; &quot;/dev/stdout&quot;,
6        &quot;Session&quot; =&gt; ssh
7  \)

Where have you defined the 'ssh' for "Session"? Go back and look at
the gem's sample code.

···

On Sun, Mar 25, 2012 at 10:25 AM, Thufir <hawat.thufir@gmail.com> wrote:

On Sun, 25 Mar 2012 19:49:44 +0900, Thufir wrote:

--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com

twitter: @hassan

ah, ok. I thought I'd tried that, but apparently not. There's no login,
I just would like to pass some commands to leafnode and get the response.

Am I not getting the output correctly?

thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ ruby ssh.rb
trying to connect...
# 0x00000: 54 72 79 69 6e 67 20 31 32 37 2e 30 2e 30 2e 31 Trying
127.0.0.1
# 0x00010: 2e 2e 2e 0a ....

/home/thufir/.rvm/gems/ruby-1.9.3-p125/gems/net-ssh-telnet-0.0.2/lib/net/
ssh/telnet.rb:219:in `rescue in initialize': timed out while opening a
connection to the host (Timeout::Error)
  from /home/thufir/.rvm/gems/ruby-1.9.3-p125/gems/net-ssh-
telnet-0.0.2/lib/net/ssh/telnet.rb:208:in `initialize'
  from ssh.rb:5:in `new'
  from ssh.rb:5:in `<main>'
thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ nl ssh.rb
     1 require 'rubygems'
     2 require 'net/ssh/telnet'
       
     3 puts "trying to connect..."
     4 s = Net::SSH::Telnet.new(
     5 "Dump_log" => "/dev/stdout",
     6 "Host" => "127.0.0.1",
     7 "Port" => "119"
     8 )
     9 puts "Logged in"
    10 putss.cmd("group comp.lang.ruby")
       
thufir@dur:~/ruby/ssh$

thanks,

Thufir

···

On Mon, 26 Mar 2012 12:49:33 +0900, Iain Davis wrote:

4  s = Net::SSH::Telnet\.new\(
5          &quot;Dump\_log&quot; =&gt; &quot;/dev/stdout&quot;, 6          &quot;Host&quot; =&gt;
&quot;127\.0\.0\.1:119&quot;,

s = Net::SSH::Telnet.new(
     "Dump_log" => "/dev/stdout",
      "Host" => "127.0.0.1",
      "Port" => 119 as part
...

Pardon, I don't understand:

http://rubydoc.info/gems/net-ssh-telnet/0.0.2/frames

example 1:

s = Net::SSH::Telnet.new(
      "Dump_log" => "/dev/stdout",
      "Session" => ssh
)
puts "Logged in"
p s.cmd("echo hello")

That's not my code, that's the sample code. What I'm asking is why the
sample code, when copied, pasted, gives errors as so:

thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ ruby ssh.rb
trying to connect...
ssh.rb:10:in `<main>': undefined local variable or method `ssh' for
main:Object (NameError)
thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ nl ssh.rb
     1 require 'rubygems'
     2 require 'net/ssh/telnet'
       
     3 puts "trying to connect..."
       
     4 s = Net::SSH::Telnet.new(
     5 "Dump_log" => "/dev/stdout",
     6 "Session" => ssh
     7 )
     8 puts "Logged in"
     9 p s.cmd("echo hello")
thufir@dur:~/ruby/ssh$

thanks,

Thufir

···

On Mon, 26 Mar 2012 02:43:36 +0900, Hassan Schroeder wrote:

Well, I don't get it, I have no idea why the sample code doesn't work
for me.

Because you're not using the sample code?

Really? Here's what I see in Example 1 --

···

On Sun, Mar 25, 2012 at 9:36 PM, Thufir <hawat.thufir@gmail.com> wrote:

http://rubydoc.info/gems/net-ssh-telnet/0.0.2/frames

example 1:

s = Net::SSH::Telnet.new(
"Dump_log" => "/dev/stdout",
"Session" => ssh
)
puts "Logged in"
p s.cmd("echo hello")

That's not my code, that's the sample code.

----------------------------------------------------------
Example 1 - pass existing Net::SSH::Session object

ssh = Net::SSH.start("127.0.0.1",
      :username=>"test123",
      :password=>"pass456"
)
s = Net::SSH::Telnet.new(
      "Dump_log" => "/dev/stdout",
      "Session" => ssh
)
puts "Logged in"
p s.cmd("echo hello")
----------------------------------------------------------

What I'm asking is why the
sample code, when copied, pasted, gives errors as so:

ssh.rb:10:in `<main>': undefined local variable or method `ssh'

Because you didn't copy all of it, and the variable 'ssh' in your broken
abbreviated test isn't defined.

Just what the error message says, unsurprisingly :slight_smile:

--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com

twitter: @hassan

you're right, when I read that last night I was a bit tired.

I'm trying to look at the corresponding API for "non-ssh" telnet, to
figure out how to login to leafnode and get the output printed to the
screen. I just get timeouts so far:

thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ ruby ssh.rb
trying to connect...
# 0x00000: 54 72 79 69 6e 67 20 31 32 37 2e 30 2e 30 2e 31 Trying
127.0.0.1
# 0x00010: 2e 2e 2e 0a ....

[1]+ Stopped ruby ssh.rb
thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ /home/thufir/.rvm/gems/ruby-1.9.3-p125/gems/net-
ssh-telnet-0.0.2/lib/net/ssh/telnet.rb:219:in `rescue in initialize':
timed out while opening a connection to the host (Timeout::Error)
  from /home/thufir/.rvm/gems/ruby-1.9.3-p125/gems/net-ssh-
telnet-0.0.2/lib/net/ssh/telnet.rb:208:in `initialize'
  from ssh.rb:5:in `new'
  from ssh.rb:5:in `<main>'

[1]+ Exit 1 ruby ssh.rb
thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$ nl ssh.rb
     1 require 'rubygems'
     2 require 'net/ssh/telnet'
       
     3 puts "trying to connect..."
     4 s = Net::SSH::Telnet.new(
     5 "Dump_log" => "/dev/stdout",
     6 "Host" => "127.0.0.1",
     7 "Port" => "119"
     8 )
     9 puts "Logged in"
    10 putss.cmd("group comp.lang.ruby")
       
thufir@dur:~/ruby/ssh$
thufir@dur:~/ruby/ssh$

In fact, it doesn't even seem to be "logging in" since that put never
executes. Am I using the right API? If so, how do I get the response
which "telnet localhost nntp" brings up in the terminal?

thanks,

Thufir