Файл сессии Telegram: что такое .session, string session, .json и чем они отличаются от tdata

· 4 min

Файл сессии Telegram (.session) хранит ключ авторизации аккаунта. Разбираем форматы Telethon и Pyrogram, отличие от tdata и как безопасно перенести сессию.

Файл сессии Telegram (.session) — это сохранённое на диске подключение к аккаунту: в нём лежит ключ авторизации (auth key) и адрес дата-центра Telegram. Программа, у которой есть этот файл, работает от имени аккаунта без кода из SMS и без облачного пароля. Поэтому сессия — это способ перенести свои аккаунты из одного инструмента в другой, и одновременно вещь, которую нужно хранить как пароль.

Что внутри файла .session

При входе приложение согласует с серверами Telegram 2048-битный ключ авторизации. Telegram считает этот ключ «устройством, на котором выполнен вход». Пока ключ у приложения, оно подключается без повторного кода.

По документации Telethon, файл .session — это база SQLite, в которой хранится всё нужное для связи с серверами: IP сервера, порт и ключ авторизации. По умолчанию там же кэшируются пользователи и чаты, которые клиент уже видел. Pyrogram тоже хранит сессию в одном SQLite-файле и подчёркивает, что сессия «привязана к вашему аккаунту бессрочно».

Схемы таблиц у библиотек разные: файл Telethon и файл Pyrogram оба называются .session, но это не одно и то же.

Какие бывают форматы

ФорматЧто этоГде встречается
.session TelethonSQLite: DC, сервер, порт, auth keyСкрипты и софт на Python
.session PyrogramSQLite с другой схемойСофт на Pyrogram
String sessionТот же ключ одной строкойСерверы без постоянного диска, конфиги
.json к сессииapi_id, модель устройства, версия системы и приложения, языкВыгрузки из мультиаккаунт-софта
tdataПапка данных Telegram DesktopОфициальный десктопный клиент

String session. В Telethon это прямо названо «способом экспортировать ключ авторизации», и там же предупреждение: строку слить проще, чем файл. Строка, вставленная в чат или тикет, — это полноценный вход в аккаунт.

Файл .json. Это не стандарт Telegram, а соглашение многих инструментов: рядом с account.session лежит account.json с параметрами, под которыми сессия создавалась (api_id, устройство, версия приложения). Если переносить пару вместе, аккаунт и дальше подключается с теми же данными устройства.

Чем сессия отличается от tdata

tdata — папка, которую Telegram Desktop хранит на компьютере. Это формат десктопного клиента, а не сессия Telethon или Pyrogram. Telegramte не импортирует tdata: панель принимает .session, .json, string session и .zip с ними. Если у вас только tdata, проще подключить номер заново по QR-коду или по коду из SMS.

Безопасность: сессия = полный доступ

Одна сессия — одна программа

Самая частая причина «слетевших» сессий. Если один и тот же ключ одновременно используется в двух программах или с двух IP, Telegram это видит. Согласно справочнику ошибок API, сервер возвращает AUTH_KEY_DUPLICATED, и сессия к этому моменту уже аннулирована: нужно заново входить в аккаунт.

Как переносить правильно:

  1. Остановите аккаунт в старом софте или закройте его полностью.
  2. Скопируйте .session (и .json, если он есть).
  3. Импортируйте в новый инструмент и запускайте только там.
  4. Не запускайте тот же файл в старом софте «на всякий случай».

Как отозвать сессию

Удалить утёкший файл недостаточно: ключ на стороне Telegram всё ещё действует. Откройте Telegram на телефоне, зайдите в Настройки → Устройства, выберите незнакомый сеанс и завершите его. Этот же путь для потерянных устройств указан в FAQ Telegram. Там же можно включить автоматическое завершение сеансов, которые не использовались выбранный период.

И включите облачный пароль: после завершения украденного сеанса он не даст просто войти снова по коду из SMS.

Как импортировать сессии в Telegramte

  1. Откройте Номера → Подключить номер и вкладку Файл сессии.
  2. Выберите файлы .session и, если есть, одноимённые .json. Если аккаунтов много, загрузите один .zip. String session можно вставить текстом.
  3. При желании укажите прокси. Если не указать, из вашего пула может автоматически назначиться рабочий и наименее загруженный прокси.
  4. Каждый файл проверяется отдельно. Рабочие аккаунты появляются в списке номеров, проблемные отображаются с причиной ошибки.

Ключи сессий хранятся в панели в зашифрованном виде (AES-256-GCM). После импорта уберите исходные файлы в надёжное место или удалите.

Частые вопросы

Сессия перестала работать — аккаунт в бане? Не обязательно. Сеанс могли завершить в «Устройствах», он мог быть аннулирован из-за AUTH_KEY_DUPLICATED или закрыться после долгого простоя. Зайдите в аккаунт с телефона и проверьте.

Есть ли в .session облачный пароль? Нет, но он и не нужен: ключа достаточно, чтобы обойти вход. Поэтому файл так же ценен, как пароль.

Нужно ли конвертировать Telethon в Pyrogram? Сторонние конвертеры существуют, но каждый из них получает ваш ключ. Лучше инструмент, который читает оба формата сам. Telegramte читает.

По теме: Как управлять несколькими аккаунтами Telegram в команде · Прокси для Telegram-аккаунтов · Двухэтапная аутентификация Telegram для команды