I think you are confusing the concepts of "sessions" and "channels". In SSH2, multiple communication paths (channels) can be multiplexed through a single connection (session). The session is established by the new call, which establishes a TCP connection and performs the server identification key exchange. Once this is complete, additional channels can be established to perform tasks like port forwarding, transferring data or running an interactive shell.
The cmd method in this module creates a new channel each time it is invoked. This means that a new login shell is created, the user is authenticated, the command is run and the channel closed each time. The network connection remains for more channels. This looks like multiple connections.
If you want to run multiple commands within the same instance of a login shell, you need to use the shell method of the module, which "opens up an interactive shell on the remote machine and connects it to your STDIN." You will probably want to muck about with your file descriptors so that you can control what gets sent to STDIN programmatically (Expect, perhaps).
The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon
|Replies are listed 'Best First'.|
|A reply falls below the community's threshold of quality. You may see it by logging in.|