I understand that. The problem I&#39;m facing is that unless I write &quot;reactor.run()&quot; my client isn&#39;t starting up. From what I understood in the trial documentation, I should simply call the connectTCP method and then return a deferred. However, if I do that, the client isn&#39;t starting. I&#39;ll post some of the client code for you info :<br>
class SimpleTransport(transport.SSHClientTransport):<br>    def verifyHostKey(self, hostKey, fingerprint):<br>        print &#39;host key fingerprint: %s&#39; % fingerprint<br>        return defer.succeed(1) <br><br>    def connectionSecure(self):<br>
        self.requestService(<br>            SimpleUserAuth(&#39;webchick&#39;,<br>                SimpleConnection()))<br><br>class SimpleUserAuth(userauth.SSHUserAuthClient):<br>    def getPassword(self):<br>        return defer.succeed(&quot;Thai1mil3ahb&quot;)        <br>
    def getPublicKey(self):<br>        print &quot;trying public key&quot;<br>        path = os.path.expanduser(&#39;~/.ssh/id_rsa&#39;) <br>        # this works with rsa too <br>        # just change the name here and in getPrivateKey<br>
        if not os.path.exists(path) or self.lastPublicKey:<br>            # the file doesn&#39;t exist, or we&#39;ve tried a public key<br>            return<br>        return keys.Key.fromFile(filename=path+&#39;.pub&#39;,passphrase=&#39;pikachu&#39;).blob()<br>
<br>    def getPrivateKey(self):<br>        path = os.path.expanduser(&#39;~/.ssh/id_rsa&#39;)<br>        return defer.succeed(keys.Key.fromFile(path,passphrase=&#39;pikachu&#39;).keyObject)<br>Now , in my test case :<br>
def test_1(self):<br>         def got_data(data):<br>             self.assertEquals(data,&quot;a&quot;)<br>         d = protocol.ClientCreator(reactor, SimpleTransport).connectTCP(&#39;localhost&#39;, self.server.getHost().port)<br>
         d.addCallback(got_data)<br>         return d<br>The callback is firing, but the client is not started and *data* is a SimpleTransport Instance.<br>Any thoughts on why this is happening and what I am doing wrong? <br>