def execute(self, args, p, preargs=''): if runtime.platformType == 'win32': raise unittest.SkipTest, "can't run cmdline client on win32" port = self.server.getHost().port cmd1 = ('-p %i -l testuser ' '--known-hosts kh_test ' '--user-authentications publickey ' '--host-key-algorithms ssh-rsa ' '-a ' '-K direct ' '-i dsa_test ' '127.0.0.1') % port cmd2 = ('-p %i -l testuser ' '-K unix ' '-v ') % port + preargs + \ ' 127.0.0.1 ' + args cmds1 = cmd1.split() cmds2 = _makeArgs(cmd2.split()) o = options.ConchOptions() def _(host, *args): o['host'] = host o.parseArgs = _ o.parseOptions(cmds1) vhk = default.verifyHostKey conn = SSHTestConnectionForUnix(p, sys.executable, cmds2) uao = default.SSHUserAuthClient(o['user'], o, conn) d = connect.connect(o['host'], int(o['port']), o, vhk, uao) d.addErrback(lambda f: unittest.fail( 'Failure connecting to test server: %s' % f)) d.addCallback(lambda x: p.deferred) d.addCallback(lambda x: defer.maybeDeferred(conn.transport.transport. loseConnection)) return d
def setUpClass(self): if hasattr(self, 'skip'): return test_process.SignalMixin.setUpClass(self) CFTPClientTestBase.setUpClass(self) self.startServer() cmd1 = ('-p %i -l testuser ' '--known-hosts kh_test ' '--host-key-algorithms ssh-rsa ' '-a ' '-K direct ' '-i dsa_test ' '127.0.0.1') port = self.server.getHost().port cmds1 = (cmd1 % port).split() o = options.ConchOptions() def _(host, *args): o['host'] = host o.parseArgs = _ o.parseOptions(cmds1) vhk = default.verifyHostKey self.conn = conn = test_conch.SSHTestConnectionForUnix(None) uao = default.SSHUserAuthClient(o['user'], o, conn) return connect.connect(o['host'], int(o['port']), o, vhk, uao)
def connectConsole(console, user=None, host='127.0.0.1', port=9000): opts = options.ConchOptions() opts.parseOptions([]) opts['host'] = host opts['port'] = port if user is None: user = getpass.getuser() conn = SSHConnection(console) userauth = default.SSHUserAuthClient(user, opts, conn) def eb(reason): log.err(reason) console.writeHelp('failed connecting to remote: %s' % reason) log.msg('connecting') def verifyHostKey(transport, host, pubKey, fingerprint): log.msg('verifying host key') actualHost = transport.factory.options['host'] actualKey = keys.Key.fromString(pubKey) kh = KnownHostsFile.fromPath( FilePath(transport.factory.options['known-hosts'] or os.path.expanduser('~/.ssh/known_hosts'))) return kh.verifyHostKey(console, actualHost, host, actualKey).addErrback(log.err) connect.connect(host, port, opts, verifyHostKey, userauth).addErrback(eb) return conn
def connectSSH(self, strport, sshConnection=None): if sshConnection is None: sshConnection = SSHConnection(self, self.options) #vhk = default.verifyHostKey vhk = lambda *a: defer.succeed(1) uao = default.SSHUserAuthClient(self.options['user'], self.options, sshConnection) d = defer.Deferred() factory = direct.SSHClientFactory(d, self.options, vhk, uao) endpoint = endpoints.clientFromString(reactor, strport) try: wp = yield endpoint.connect(factory) except Exception: def _stop(): try: reactor.stop() except: pass reactor.callLater(0.1, _stop) raise defer.returnValue(wp)
def makeAuthClient(self, port, options): cmds = (('-p %i -l testuser ' '--known-hosts kh_test ' '--user-authentications publickey ' '--host-key-algorithms ssh-rsa ' '-a ' '-K direct ' '-i dsa_test ' '127.0.0.1') % port).split() options.parseOptions(cmds) return default.SSHUserAuthClient(options['user'], options, self.conn)
def doConnect(options): if "@" in options["host"]: options["user"], options["host"] = options["host"].split("@", 1) host = options["host"] if not options["user"]: options["user"] = getpass.getuser() if not options["port"]: options["port"] = 22 else: options["port"] = int(options["port"]) host = options["host"] port = options["port"] conn = SSHConnection() conn.options = options vhk = default.verifyHostKey uao = default.SSHUserAuthClient(options["user"], options, conn) connect.connect(host, port, options, vhk, uao).addErrback(_ebExit)
def doConnect(options): if '@' in options['host']: options['user'], options['host'] = options['host'].split('@', 1) host = options['host'] if not options['user']: options['user'] = getpass.getuser() if not options['port']: options['port'] = 22 else: options['port'] = int(options['port']) host = options['host'] port = options['port'] conn = SSHConnection() conn.options = options vhk = default.verifyHostKey uao = default.SSHUserAuthClient(options['user'], options, conn) connect.connect(host, port, options, vhk, uao).addErrback(_ebExit)
def doConnect(): # log.deferr = handleError # HACK if '@' in options['host']: options['user'], options['host'] = options['host'].split('@',1) if not options.identitys: options.identitys = ['~/.ssh/id_rsa', '~/.ssh/id_dsa'] host = options['host'] if not options['user']: options['user'] = getpass.getuser() if not options['port']: options['port'] = 22 else: options['port'] = int(options['port']) host = options['host'] port = options['port'] vhk = default.verifyHostKey uao = default.SSHUserAuthClient(options['user'], options, SSHConnection()) connect.connect(host, port, options, vhk, uao).addErrback(_ebExit)
def doConnect(): if "@" in options["host"]: options["user"], options["host"] = options["host"].split("@", 1) if not options.identitys: options.identitys = ["~/.ssh/id_rsa", "~/.ssh/id_dsa"] host = options["host"] if not options["user"]: options["user"] = getpass.getuser() if not options["port"]: options["port"] = 22 else: options["port"] = int(options["port"]) host = options["host"] port = options["port"] vhk = default.verifyHostKey if not options["host-key-algorithms"]: options["host-key-algorithms"] = default.getHostKeyAlgorithms( host, options) uao = default.SSHUserAuthClient(options["user"], options, SSHConnection()) connect.connect(host, port, options, vhk, uao).addErrback(_ebExit)
def doConnect(): if '@' in options['host']: options['user'], options['host'] = options['host'].split('@', 1) if not options.identitys: options.identitys = ['~/.ssh/id_rsa', '~/.ssh/id_dsa'] host = options['host'] if not options['user']: options['user'] = getpass.getuser() if not options['port']: options['port'] = 22 else: options['port'] = int(options['port']) host = options['host'] port = options['port'] vhk = default.verifyHostKey if not options['host-key-algorithms']: options['host-key-algorithms'] = default.getHostKeyAlgorithms( host, options) uao = default.SSHUserAuthClient(options['user'], options, SSHConnection()) connect.connect(host, port, options, vhk, uao).addErrback(_ebExit)