Я не слишком уверен, кто сказал вам об использовании туннеля SSH. Это практично, если вы соединяете два сервера вместе или клиент, которым вы управляете, и сервер.
Единственный способ, который работает в современном мире, — это подключить клиента к вашему серверу. Сервер генерирует уникальный идентификатор сеанса (например, UUID, он должен быть достаточно большим и иметь максимально возможную случайность для обеспечения безопасности) и отправляет его на телефон пользователя. Это часто называют файлом cookie.
Затем каждый раз, когда телефон хочет получить доступ к вашему серверу, он отправляет этот файл cookie, который идентифицирует телефон как разрешенного пользователя.
Конечно, все коммуникации должны происходить в зашифрованном виде (TLS 1.2 или выше).
Обратите внимание, что есть еще и VPN. Это похоже на SSH, но открывает соединение, через которое другие безопасные соединения могут быть в режиме. Это действительно будет зависеть от вашего приложения. Лично я бы не рекомендовал VPN, так как он добавляет еще один уровень, который, скорее всего, не работает. странным образом (т. е. остальная часть вашего приложения точно не будет знать, почему ему не удается подключиться, получить данные и т. д.).