Подключитесь и запросите базу данных Mongo через SSH с закрытым ключом на Python.Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Подключитесь и запросите базу данных Mongo через SSH с закрытым ключом на Python.

Сообщение Гость »


у меня есть файл кода mongo.py, как показано ниже, для подключения n-запроса mongo с имя пользователя хост пароль и его работа, но как я могу подключиться к ssh с помощью ssh address username и метода аутентификации private_key? private_key в другом файле

вот мой пример конфигурации с ssh:

sql_local = {'mongomdm':{'host':'xx.xxx.xxx.xx', 'user':'aaa', 'pkey':'/Users/satu/dua/tiga/ config/settings/googlecloud_dev_rsa'}} У меня есть готовые ссылки, и мне следует импортировать такую ​​библиотеку?

из paramiko import SSHClient, AutoAddPolicy, RSAKey из paramiko.auth_handler import AuthenticationException из scp импорта SCPClient, SCPException из io импортировать StringIO вот мой файл кода mongo.py

импортировать CSV импортировать панд как pd из pymongo импортировать MongoClient из pymongo.errors импорт ConnectionFailure импортировать config.config как cfg импортировать config.modules.common как comm из bson.objectid импортировать ObjectId класс монгофунк: защита __init__(сам): self.types = 'монгодб' self.host = cfg.sql_local[self.types]['host'] self.user = cfg.sql_local[self.types]['user'] self.password = cfg.sql_local[self.types]['пароль'] self.uri = 'mongodb://{user}:{пароль}@{хост}'.format(пользователь = self.user, пароль = self.password, хост = self.host) соединение по умолчанию (самостоятельное): пытаться: клиент = MongoClient(self.uri) client.server_info() print('Соединение установлено') кроме ConnectionFailure как ошибки: поднять (ошибиться) возврат клиента def get_collection(сам, клиент, база данных, коллекция): self.client= клиент self.database= база данных self.collection= коллекция db= self.client[self.database] вернуть базу данных [self.collection] def get_query(self,id_data= None,start_date=None,end_date=None,query=None): self.id = ObjectId(id_data) self.start_date = начальная_дата self.end_date = end_date self.query = запрос если self.end_date: script= {'date':{'$gt':self.start_date,'$lte':self.end_date}} если self.end_date имеет значение None: script= {'date':{'$gt':self.start_date}} если self.id: скрипт = {'_id':{'$gt':self.id}} если самостоятельный запрос: script.update(self.query) сценарий возврата def get_data_to_pandas(self, база данных, коллекция, запрос, пропуск, предел = нет): self.database = база данных self.collection = коллекция self.query = запрос self.limit = предел self.skip = пропустить self.client = self.connection() self.collection = self.get_collection(self.client,self.database,self.collection) если предел: курсор = self.collection.find(self.query).skip(self.skip).limit(self.limit) если не лимит: курсор = коллекция.найти(self.query).skip(self.skip) df = pd.DataFrame(список(курсор)) возврат DF Изменить:

def Connection(self): пытаться: print('Установление SSH-соединения') self.client = paramiko.SSHClient() self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) если (self.password == ''): частный_ключ = paramiko.RSAKey.from_private_key_file(self.pkey) self.client.connect(имя хоста=self.host, порт=self.port, имя пользователя=self.user, pkey=private_key,allow_agent=False,look_for_keys=False) print("Подключено к серверу"),self.host еще: self.client.connect(имя хоста=self.host, порт=self.port, имя пользователя=self.user, пароль=self.password,allow_agent=False,look_for_keys=False) print("Подключено к серверу"),self.host кроме парамико.AuthenticationException: print("Аутентификация не удалась, подтвердите свои учетные данные") result_flag = Ложь кроме paramiko.SSHException как sshException: print("Не удалось установить SSH-соединение: %s") % sshException result_flag = Ложь еще: result_flag = Истина вернуть result_flag def get_collection(я, клиент, база данных, коллекция): self.client= клиент self.database= база данных self.collection= коллекция db= self.client[self.database] вернуть базу данных[self.collection]` У меня возникла ошибка:

строка 64, в get_collection db= self.client[self.database] TypeError: объект 'bool' не подлежит подписке Что мне делать?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Используйте C# SSH.NET с закрытым ключом, хранящимся в ssh-agent.
    Anonymous » » в форуме C#
    0 Ответы
    85 Просмотры
    Последнее сообщение Anonymous
  • Ошибка аутентификации JSCH SSH с закрытым ключом (ошибка сбоя Auth)
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Подключите и запросите базу данных SQL Azure с использованием ядра .NET и Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Подключите и запросите базу данных SQL Azure с использованием ядра .NET и Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Подключите и запросите базу данных SQL Azure с использованием ядра .NET и Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»