GrapheneOS. Termux. SSH.
https://termux.dev/en/
https://wiki.termux.com/wiki/Termux_Wiki_(на_русском)
Termux это эмулятор терминала Linux для Android с возможность установки пакетов из довольно большой коллекции.
Установка Termux.
Запускаем браузер Vanadium, открываем сайт f-droid.org, на сайте нажимаем кнопку СКАЧАТЬ F-DROID
, скачиваем .apk разрешаем установку .apk из Vanadium, устанавливаем магазин приложений. После установки запрещаем для Vanadium установку .apk. Запускаем F-Droid, разрешаем установку .apk из приложения F-Droid, в поиске находим приложение Termux и устанавливаем его. Разрешаем для Termux доступ к сети. Можно скачать сразу .apk без установки магазина приложений, но в таком случае отслеживать обновления и обновлять Termux придётся вручную.
SSH.
Запускаем Termux. Обновляем индексные файлы репозиториев.
~ $ pkg update
Обновляем пакеты
~ $ pkg upgrade
Удаляем старые версии пакетов из кэша для экономии дискового пространства.
~ $ pkg autoclean
Устанавливаем SSH и SFTP сервер
~ $ pkg install openssh openssh-sftp-server
Генерируем на клиенте, к примеру в Tails, ключ ssh.
amnesia@amnesia:~$ ssh-keygen -t ed25519 -b 4096 -C "termux@grapheneos.lan"
Генерируем QR-код для публичного ключа
amnesia@amnesia:~$ cat ~/.ssh/id_ed25519.pub | qr
сканируем его камерой GrapheneOS и помещаем текст в файл
~ $ nano /data/data/com.termux/files/home/.ssh/authorized_keys
Сохраняем файл <Ctrl>+<X>
, <Y>
.
Включаем в GrapheneOS точку доступа Wi-Fi, подключаемся к этой точке доступа из Tails. Смотрим в Tails IP на Wi-Fi адаптере wlan0
amnesia@amnesia:~$ ip addr
13: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether ХХ:ХХ:ХХ:ХХ:ХХ:ХХ brd ХХ:ХХ:ХХ:ХХ:ХХ:ХХ
inet 192.168.237.24/24 brd 192.168.237.255 scope global dynamic noprefixroute wlan0
valid_lft 3507sec preferred_lft 3507sec
inet6 ХХХХ::ХХХХ:ХХХХ:ХХХХ:ХХХХ/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Определяем IP GrapheneOS
amnesia@amnesia:~$ sudo arp-scan -I wlan0 --localnet
[sudo] пароль для amnesia:
Interface: wlan0, type: EN10MB, MAC: ХХ:ХХ:ХХ:ХХ:ХХ:ХХ, IPv4: 192.168.237.24
192.168.237.39 YY:YY:YY:YY:YY:YY (Unknown: locally administered)
В GrapheneOS приводим соответствующие строчки конфигурационного файла SSH-сервера к следующему виду:
~ $ nano /data/data/com.termux/files/usr/etc/ssh/sshd_config
ListenAddress 0.0.0.0:9522
PasswordAuthentication no
AllowTcpForwarding no
X11Forwarding no
Сохраняем файл <Ctrl>+<X>
, <Y>
и запускаем ssh-сервер
~ $ sshd
В Tails добавляем ssh-ключ в агент
amnesia@amnesia:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/amnesia/.ssh/id_ed25519:
Identity added: /home/amnesia/.ssh/id_ed25519 (termux@grapheneos.lan)
И подключаемся к GrapheneOS по ssh
amnesia@amnesia:~$ ssh root@192.168.237.39 -o port=9522
The authenticity of host '[192.168.237.39]:9522 ([192.168.237.39]:9522)' can't be established.
ED25519 key fingerprint is SHA256:ЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧЧ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.237.39]:9522' (ED25519) to the list of known hosts.
Создаём в Tails точку монтирования для SFTP
amnesia@amnesia:~$ mkdir ~/GrapheneOS
Монтируем в этот кататлог sshfs GrapheneOS
amnesia@amnesia:~$ sshfs root@192.168.237.39:/data/data/com.termux/files/ /home/amnesia/GrapheneOS/ -o port=9522
Результат:
amnesia@amnesia:~$ ls -a /home/amnesia/GrapheneOS
. .. home usr
https://gekkk.co/6f9f2a35d0cd6678f56f955d7d33590b

Можно копировать файлы с\на смартфон, удобно управлять Termux из терминала с Tails.
Останавливаем ssh-сервер.
~ $ pkill sshd
~ $ Connection to 192.168.237.39 closed by remote host.
Connection to 192.168.237.39 closed.
amnesia@amnesia:~$