Я работал с созданным мною многопоточным SSH-сервером и столкнулся с проблемой. Мне нужен способ получить учетные данные для каждого канала, используемого для аутентификации. Например, в handle после того, как я принимаю канал из транспорта, я хотел бы знать, какие учетные данные этот канал использовал для аутентификации. сервер, что-то вроде channel.get_credentials() -> (имя пользователя, пароль). Читая документацию, я не смог найти способ, но, надеюсь, кто-то знает что-то, чего не знаю я.
импортировать параметры импорт сокета импорт потоков класс Сервер(paramiko.server.ServerInterface): защита get_allowed_auths (я, имя пользователя): вернуть «пароль» Защиту check_channel_request (сам, вид, идентификатор канала): вернуть параметрико.OPEN_SUCCEEDED защита check_channel_shell_request(сам, канал): вернуть истину def check_channel_pty_request(self, c, t, w, h, p, ph, m): вернуть истину защита get_banner (сам): return ("SSH-сервер Paramiko v1.0\n\r", "EN") def check_auth_password(я, имя пользователя, пароль): print(f"[*] Запрос аутентификации с учетными данными {имя пользователя}:{пароль}") вернуть парамико.AUTH_SUCCESSFUL дескриптор защиты (conn, адрес): print("[*] Обработчик, ожидающий SSH-соединения...") транспорт = парамико.Транспорт(подключение) Transport.add_server_key(host_key) Transport.start_server(сервер=сервер) канал = транспорт.принять(30) если канал: print("[*] SSH-соединение получено") Channel.send("Привет