Hi,
I've been playing around with Twisted's Conch client (which looks extremely well done, thanks!). I've been able to connect to a conch server and also connect to other ssh servers and execuate various commands. I'd like to be able to connect to an arbitrary SSH server and run /bin/bash.
I'm able to execute a command like so:
---------------------
class CommandChannel(channel.SSHChannel):
....
def channelOpen(self, data):
self.conn.sendRequest(
self, 'exec', common.NS(self.command), wantReply=True).addCallback(
self._gotResponse)
---------------------
Looking through the SSH spec (connect protocol, rfc4254), it looks like shells are opened with this command.
---------------------
byte SSH_MSG_CHANNEL_REQUEST
uint32 recipient channel
string "shell"
boolean want reply
---------------------
It doesn't look like Conch supports these requests (here's how CHANNEL_REQUESTs are currently sent out)
---------------------
(Twisted-8.1.0)
twisted/conch/ssh/connection.py (413):
self.transport.sendPacket(MSG_CHANNEL_REQUEST, struct.pack('>L',
self.channelsToRemoteChannel[channel])
+ common.NS(requestType)+chr(wantReply)
+ data)
---------------------
I may be misunderstanding how remote shells are started, so any help would be appreciated.
Again, I'm trying to launch an interactive /bin/bash shell from a Conch SSH client on an arbitrary remote SSH server.
Thanks for your time.
Best Regards,
Bill Zeller