Hi


I would like to run multiple ssh commands within the same 'context' as if 
it would be using putty when connecting to a cisco device.

Here are two examples of what i would need to send to the device:



1) Setting the terminal width to 0 in order to remove the line breaks. This 
makes parsing the output of the following command easier.

Switch#terminal width 0Switch#show vlan brief

    VLAN Name                             Status    Ports
    ---- -------------------------------- --------- 
-------------------------------
    1    default                          active    Et0/0, Et0/1, Et0/2, Et0/3
    ...
    ...



2) Configure an IP address of an interface. When connecting with ssh, I 
start in the 'enable' mode due to the user privileges. I need to get in the 
config mode first. Afterwards, I need to get in the interface config mode 
and can finally set the address.

Router#configure terminal
    Enter configuration commands, one per line.  End with 
CNTL/Z.Router(config)#interface e3/2Router(config-if)#ip address 172.16.1.1 
255.255.255.0




I can run a single command easily with session.Run() but as I described, I 
need to be able to run multiple commands and parse their output within a 
single 'context'.

*How could this behavior be achieved with crypto/ssh?* When I try to create 
a new session after the first session.run(), it always returns with an 
error: "EOF".

I just wanted to try whether the context will stay the same but it won't 
even come that far.


//create session 1 and go into config mode
session, err = client.NewSession()if err != nil {
    panic("Failed to create session: " + err.Error())}if err := 
session.Run("conf t"); err != nil {
    panic("Failed to run: " + err.Error())}
session.Close()
//create session 2 and go into if mode
session, err = client.NewSession()if err != nil {
    //Error will be EOF
    panic("Failed to create session: " + err.Error())}if err := 
session.Run("int e3/2"); err != nil {
    panic("Failed to run: " + err.Error())}
session.Close()



Thanks,
Dominik


I also posted this question in stackoverflow 
<https://stackoverflow.com/questions/44045049/golang-multiple-commands-in-one-ssh-session>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to