コード例 #1
0
ファイル: snippet.py プロジェクト: szabo92/gistable
 def _do_localForwards(self, localForwards):
     for localPort, hostport in options.localForwards:
         s = reactor.listenTCP(
             localPort,
             forwarding.SSHListenForwardingFactory(
                 conn, hostport, SSHListenClientForwardingChannel))
         self.localForwards.append(s)
コード例 #2
0
def onConnect():
    #    if keyAgent and options['agent']:
    #        cc = protocol.ClientCreator(reactor, SSHAgentForwardingLocal, conn)
    #        cc.connectUNIX(os.environ['SSH_AUTH_SOCK'])
    if hasattr(conn.transport, "sendIgnore"):
        _KeepAlive(conn)
    if options.localForwards:
        for localPort, hostport in options.localForwards:
            s = reactor.listenTCP(
                localPort,
                forwarding.SSHListenForwardingFactory(
                    conn, hostport, SSHListenClientForwardingChannel),
            )
            conn.localForwards.append(s)
    if options.remoteForwards:
        for remotePort, hostport in options.remoteForwards:
            log.msg(
                f"asking for remote forwarding for {remotePort}:{hostport}")
            conn.requestRemoteForwarding(remotePort, hostport)
        reactor.addSystemEventTrigger("before", "shutdown", beforeShutdown)
    if not options["noshell"] or options["agent"]:
        conn.openChannel(SSHSession())
    if options["fork"]:
        if os.fork():
            os._exit(0)
        os.setsid()
        for i in range(3):
            try:
                os.close(i)
            except OSError as e:
                import errno

                if e.errno != errno.EBADF:
                    raise
コード例 #3
0
    def global_tcpip_forward(self, data):
        local, remote = forwarding.unpackOpen_direct_tcpip(data)
        hostToBind, portToBind = local
        log.msg("forward requested %s:%s" % (hostToBind, portToBind))
        log.msg(remote)
        try:
            listener = reactor.listenTCP(
                portToBind,
                forwarding.SSHListenForwardingFactory(
                    self.conn, (hostToBind, portToBind),
                    forwarding.SSHListenServerForwardingChannel),
                interface=hostToBind)
            listener.remote_host = remote[0]
            listener.remote_port = remote[1]
        except:
            return 0
        else:
            generated = False
            if portToBind == 0:
                portToBind = listener.getHost()[2]  # the port
                print "generating port number", portToBind
                generated = True

            self.listeners[(hostToBind, portToBind)] = listener
            if generated:
                return 1, struct.pack('>L', portToBind)
            else:
                return 1
コード例 #4
0
ファイル: test_ssh.py プロジェクト: yuu6/twisted
 def global_tcpip_forward(self, data):
     host, port = forwarding.unpackGlobal_tcpip_forward(data)
     try:
         listener = reactor.listenTCP(
             port, forwarding.SSHListenForwardingFactory(
                 self.conn, (host, port),
                 forwarding.SSHListenServerForwardingChannel),
             interface=host)
     except:
         log.err(None, "something went wrong with remote->local forwarding")
         return 0
     else:
         self.listeners[(host, port)] = listener
         return 1
コード例 #5
0
 def serviceStarted(self):
     if not options['noshell']:
         self.openChannel(SSHSession())
     if options.localForwards:
         for localPort, hostport in options.localForwards:
             reactor.listenTCP(localPort,
                         forwarding.SSHListenForwardingFactory(self,
                             hostport,
                             forwarding.SSHListenClientForwardingChannel))
     if options.remoteForwards:
         for remotePort, hostport in options.remoteForwards:
             log.msg('asking for remote forwarding for %s:%s' %
                     (remotePort, hostport))
             data = forwarding.packGlobal_tcpip_forward(
                 ('0.0.0.0', remotePort))
             self.sendGlobalRequest('tcpip-forward', data)
             self.remoteForwards[remotePort] = hostport
コード例 #6
0
ファイル: tkconch.py プロジェクト: MaxWayne/ScraperWeb
 def serviceStarted(self):
     if not options["noshell"]:
         self.openChannel(SSHSession())
     if options.localForwards:
         for localPort, hostport in options.localForwards:
             reactor.listenTCP(
                 localPort,
                 forwarding.SSHListenForwardingFactory(
                     self, hostport,
                     forwarding.SSHListenClientForwardingChannel),
             )
     if options.remoteForwards:
         for remotePort, hostport in options.remoteForwards:
             log.msg("asking for remote forwarding for {}:{}".format(
                 remotePort, hostport))
             data = forwarding.packGlobal_tcpip_forward(
                 ("0.0.0.0", remotePort))
             self.sendGlobalRequest("tcpip-forward", data)
             self.remoteForwards[remotePort] = hostport
コード例 #7
0
 def global_tcpip_forward(self, data):
     hostToBind, portToBind = forwarding.unpackGlobal_tcpip_forward(data)
     from twisted.internet import reactor
     try:
         listener = self._runAsUser(
             reactor.listenTCP,
             portToBind,
             forwarding.SSHListenForwardingFactory(
                 self.conn, (hostToBind, portToBind),
                 forwarding.SSHListenServerForwardingChannel),
             interface=hostToBind)
     except:
         return 0
     else:
         self.listeners[(hostToBind, portToBind)] = listener
         if portToBind == 0:
             portToBind = listener.getHost()[2]  # The port
             return 1, struct.pack('>L', portToBind)
         else:
             return 1