Почему бот на aiogram с библиотекой asyncssh не подключается по SSH к серверу?

Вчера сделал бота который должен подключатся по SSH к серверу и выполнять на нем команду, когда я запускал код на PyCharm он запускался и работал правильно, а когда я решил поставить его на сервер и запустить бот перестал подключаться к серверу по SSH он выполняет код до момента подключения и ошибок в логах нету.

import asyncio
import asyncssh
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
import sqlite3
from aiogram.contrib.fsm_storage.memory import MemoryStorage

API_TOKEN = ''

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())


conn = sqlite3.connect('host.db')
cursor = conn.cursor()

cursor.execute('''CREATE TABLE IF NOT EXISTS users
                (id INTEGER, user TEXT, pas TEXT, status INTEGER)''')

conn.commit()


async def sshk(user_id):
    user_id = int(user_id)
    cursor.execute('SELECT user FROM users WHERE id = ?', (user_id,))
    SSH_USER = cursor.fetchone()[0]

    cursor.execute('SELECT pas FROM users WHERE id = ?', (user_id,))
    SSH_PASSWORD = cursor.fetchone()[0]

    SSH_HOST = 's0.serv00.com'
    SSH_PORT = 22
    return SSH_USER, SSH_PASSWORD, SSH_HOST, SSH_PORT

async def run_ssh_command(command, user_id):
    print('step 1')
    SSH_USER, SSH_PASSWORD, SSH_HOST, SSH_PORT = await sshk(user_id)
    await asyncio.sleep(2)
    print('step 2')
    try:
        async with asyncssh.connect(SSH_HOST, port=SSH_PORT, username=SSH_USER, password=SSH_PASSWORD,
                                    known_hosts=None) as conn:
            print('step 3')
            async with conn.create_process() as process:
                if process and process.stdin:
                    process.stdin.write(command + '\n')
                    await process.stdin.drain()
                    returncode = process.returncode
                    print('Команда выполнена')
                else:
                    print(f"Error: Process or stdin is None")
    except Exception as e:
        print(f"Error: {e}")


@dp.message_handler(commands=['start'])
async def cmd_start(message: types.Message):
    user_id = message.from_user.id
    ms = await message.reply(f'Запуск', parse_mode='html')
    await asyncio.sleep(1)
    await bot.edit_message_text(chat_id=user_id, message_id=ms.message_id, text=f'<b>Запущено</b>', parse_mode='html')

    await run_ssh_command('cd Bot && python3 -m main', user_id)


if __name__ == '__main__':
    from aiogram.utils import executor as aiogram_executor

    aiogram_executor.start_polling(dp, skip_updates=True)```

Терминал pycharm:

Updates were skipped successfully.
step 1
step 2
step 3
Команда выполнена

Терминал сервера:

Updates were skipped successfully.
step 1
step 2

и дальше нечего не происходит, даже если подождать.

На сервере и в pycharm установлены зависимости:

  • asyncssh 2.14.1
  • cryptography 41.0.5
  • aiogram 2.15

версия Python в pycharm 3.10.5 версия Python на сервере 3.10.12


Ответы (0 шт):