Почему бот на 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