async def _remote_connection(self, host: str, addr: Optional[str] = None, ) -> "SSHClientConnection": if not self.cons.get(host): if not addr and host in self.mgr.inventory: addr = self.mgr.inventory.get_addr(host) if not addr: raise OrchestratorError("host address is empty") assert self.mgr.ssh_user n = self.mgr.ssh_user + '@' + addr logger.debug("Opening connection to {} with ssh options '{}'".format( n, self.mgr._ssh_options)) asyncssh.set_log_level('DEBUG') asyncssh.set_debug_level(3) with self.redirect_log(host, addr): try: conn = await asyncssh.connect(addr, username=self.mgr.ssh_user, client_keys=[self.mgr.tkey.name], known_hosts=None, config=[self.mgr.ssh_config_fname], preferred_auth=['publickey']) except OSError: raise except asyncssh.Error: raise except Exception: raise self.cons[host] = conn self.mgr.offline_hosts_remove(host) conn = self.cons.get(host) return conn
def main(): logging.basicConfig( format = '%(name)s: [%(levelname)s] %(message)s', level = conf.NW_LOG_LEVEL, ) asyncssh.set_debug_level(2) with open( os.path.join(conf.NW_NGINX_DIRECTORY, 'common.conf'), 'w', encoding = 'utf-8', ) as common_conf: common_conf.write(NGINX_COMMON_CONFIG.format(**vars(conf))) loop = asyncio.get_event_loop() loop.run_until_complete(start_server( conf.NW_LISTEN_HOST, conf.NW_LISTEN_PORT, )) try: loop.run_forever() except KeyboardInterrupt: pass
async def start_server(): asyncssh.set_log_level('DEBUG') asyncssh.set_debug_level(2) await asyncssh.create_server(MySSHServer, '', 8022, server_host_keys=[ '/etc/ssh/ssh_host_ecdsa_key', '/etc/ssh/ssh_host_rsa_key', ], process_factory=handle_client)
def test_packet_logging(self): """Test packet logging""" asyncssh.set_log_level('DEBUG') asyncssh.set_debug_level(3) with self.assertLogs(level='DEBUG') as log: logger.packet(0, bytes(range(0x10, 0x30)), 'CONTROL') self.assertEqual(log.records[0].msg, '[pktid=0] CONTROL\n' + ' 00000000: 10 11 12 13 14 15 16 17 18 ' + '19 1a 1b 1c 1d 1e 1f ................\n' + ' 00000010: 20 21 22 23 24 25 26 27 28 ' + '29 2a 2b 2c 2d 2e 2f !"#$%%&\'()*+,-./')
def test_debug_levels(self): """Test log debug levels""" asyncssh.set_log_level('DEBUG') for debug_level in range(1, 4): with self.subTest(debug_level=debug_level): asyncssh.set_debug_level(debug_level) with self.assertLogs(level='DEBUG') as log: logger.debug1('DEBUG') logger.debug2('DEBUG') logger.packet(None, b'', 'DEBUG') self.assertEqual(len(log.records), debug_level) for record in log.records: self.assertEqual(record.msg, record.levelname)
def main(): logging.basicConfig(level=logging.DEBUG) asyncssh.set_debug_level(1) print("valid users:") for user, password in USERS.items(): print(f" - {user} : {password}") loop = asyncio.get_event_loop() try: loop.run_until_complete(start_server()) except FileNotFoundError as ex: sys.exit( f"error: {ex} - have you run ssh-keygen to generate the expected key files?" ) except (OSError, asyncssh.Error) as exc: sys.exit(f'Error starting server: {exc}') loop.run_forever()
def main(args): """ Entry Point """ global ca, config logging.basicConfig() config = json.load(open(args.config, 'r')) if args.debug: asyncssh.set_debug_level(2) asyncssh.set_log_level(0) else: asyncssh.set_log_level(config.get('loglevel', 10)) ca = load_ca(config['ca']) loop = asyncio.get_event_loop() try: loop.run_until_complete(start_server()) except (OSError, asyncssh.Error) as exc: sys.exit('Error starting server: ' + str(exc)) loop.run_forever()
from colored import bg BACK_RESET = bg(0) BACK_BLUE = bg(27) BACK_GREEN = bg(119) except ImportError: BACK_RESET = '' BACK_BLUE = '' BACK_GREEN = '' # https://www.pythoncentral.io/sqlalchemy-orm-examples/ # db = sqlite3.connect('session.db') logging.getLogger().setLevel(logging.DEBUG) asyncssh.set_log_level(logging.DEBUG) log = logging.getLogger('sshame') asyncssh.set_debug_level(2) def configure_logging(): global log # logging.getLogger("asyncssh").setLevel(logging.DEBUG) # logging.getLogger("asyncio").setLevel(logging.DEBUG) log.setLevel(logging.DEBUG) # create file handler which logs even debug messages fh = logging.FileHandler('sshame.log') fh.setLevel(logging.DEBUG) # create console handler with a higher log level ch = logging.StreamHandler() ch.setLevel(logging.INFO) # create formatter and add it to the handlers formatter = logging.Formatter(
def test_invalid_debug_level(self): """Test invalid debug level""" with self.assertRaises(ValueError): asyncssh.set_debug_level(5)