Dear community,

I'm currently trying to write a simple ssh client using 
golang.org/x/crypto/ssh.

My question is:

When using ssh.Session.Stdin, which is an io.Reader interface, what 
triggers a call to the actual Read method?

I seem to lack some fundamentals understanding of how this works, I just 
can't seem to get my head around it.

I tried:
1) 
 session.Stdin = os.Stdin // here when I press a key it gets transmitted to 
the SSH server - how is this possible!? since session.Stdin is just a 
reader, what triggers a call to the Read method?

2)
 buf := bytes.NewBufferString("\n\nshow version\n")
session.Stdin = buf // here only the first (two) bytes are sent -- why?

Playground: https://play.golang.org/p/KTa_FbJCXWU

My reason for this post is first to gain an understanding about how 
session.Stdin might work. In the long run I would like to be able to 
execute an arbitrary command on a Cisco IOS device. This already works for 
commands with "short" outputs, however when issuing longer commands ("show 
run"), I always receive this error message:

*wait: remote command exited without exit status or exit signal*

Any help, hints, tips or suggestions are really appreciated!
 

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/1b6ee3de-3b42-4198-aaf3-a2162209d2ban%40googlegroups.com.

Reply via email to