1 - Настроить на десктопе доступ через ssh - /etc/ssh/sshd_config
2 - Настроить на роутере проброс 22-го порта на нужную машину (если используется дефолтный порт ssh)
3 - Использовать DynDNS или NoIP сервисы, если ip-адрес динамический
4 - Установить ssh-клиент на девайс с андроидом.
Server Auditor наиболее удобен для удалённого управления
5 - Всё. И не нужно никаких заморочек с vpn и vnc
Теперь что касается безопасности.
1 -
Появилась надобность рулить компом через терминал с правами рута из любой точки нашей необъятной страны.
Поздравляю! Ваш комп уже взломан! Давать рут-доступ к машине через удалённое подключение - самая большая глупость из тех, которые можно сделать при настройке ssh!
Для управления вполне достаточно входа под обычным пользователем. Если так уж нужны рут-права, то sudo для этого вполне достаточно. Как вариант, можно после подключения ввести команду sudo -s или sudo -i, чтобы работать от имени рута.
Удалённый доступ от имени рута запретить однозначно! А ещё лучше, явно указать, каким пользователям разрешён доступ
# Authentication:
LoginGraceTime 30s # лимит времени на авторизацию
PermitRootLogin no # запрет доступа для рута
MaxAuthTries 3 # максимальное количество попыток авторизации
MaxSessions 1 # максимальное количество одновременных сессий
AllowUsers your_username # логин пользователя, которому разрешено подключение
2 - Дефолтный порт лучше всего сменить, т.к. в него постоянно будут долбиться всякие кулхацкеры, пытаясь брутфорсить (проверено на собственной машине - как только настроил доступ к компу извне, сразу же начали ломиться боты, в основном с китайскими адресами)
Port *** # установить свой порт, отличный от 22-го
AddressFamily inet
3 - Запретить доступ по паролю, использовать авторизацию только по ключам! ServerAuditor эту функцию поддерживает, в отличии от большинства андроидных клиентов
PubkeyAuthentication yes # разрешение использовать публичные ключи для авторизации
AuthorizedKeysFile .ssh/authorized_keys # путь к каталогу с ключами
PasswordAuthentication no # запрет авторизации паролем
PermitEmptyPasswords no # запрет использования пустых паролей для авторизации (неактуально, если запрещена авторизация паролем)
4 - в качестве защиты от брутфорса использовать что-нибудь типа fail2ban или sshguard, если не получается самому написать правила для iptables,
Если придерживаться всех этих правил, то никаких проблем с несанкционированным доступом к машине не будет. В противном случае - ССЗБ!