
При настройке аутентификации с открытым ключом на сервере SimpleSSHD на моем телефоне Android,http://www.galexander.org/software/simplesshd/
Быстрый старт
- Установите SimpleSSHD.
На любом компьютере, который будет подключаться к вашему устройству Android, установите порт 2222. С помощью OpenSSH это можно сделать, поместив следующие строки в ~/.ssh/config:
Host myphone Port 2222
Запустите SimpleSSHD и в настройках включите «Запуск при загрузке», затем вручную запустите его в первый раз.
- Создать
authorized_keys
в домашнем каталоге (не использоватьssh-copy-id
)- При желании можно сделать .profile
как узнать имя хоста myphone
моего телефона Android?
Моему телефону время от времени назначаются разные IP-адреса. Например, я могу переместить свой ноутбук и телефон в разные локальные сети, а мой телефон может снова подключиться к той же локальной сети.
Некоторые попытки с моего ноутбука:
Первая попытка (неудача):
$ ssh -p 2222 192.168.1.87
user@C6730:/data/data/org.galexander.sshd/files $ hostname
sh: hostname: not found
Вторая попытка (неудача):
user@C6730:/data/data/org.galexander.sshd/files $ ^D
Connection to 192.168.1.87 closed.
t@ocean:/home/t$ ssh -p 2222 C6730
ssh: Could not resolve hostname c6730: No address associated with hostname
Третья попытка (успешно, если повезет с угадыванием):
Я нахожу все хосты в локальной сети по sudo nmap -sP 192.168.1.0/24
, и угадайте, какой хост в выводе, скорее всего, является телефоном. это что-то вроде android-c0f659b6548c28b2
(не настоящее имя хоста)
Изменится ли
android-c0f659b6548c28b2
в некоторых случаях, например, при перезагрузке телефона, перемещении в другую локальную сеть, назначении другого IP-адреса, ...?Кто-нибудь знает, что это
c0f659b6548c28b2
значит? Это не Mac-адрес телефона.Могу ли я настроить имя хоста телефона Android?
Спасибо.
решение1
Изменится ли
android-c0f659b6548c28b2
в некоторых случаях, например, при перезагрузке телефона, перемещении в другую локальную сеть, назначении другого IP-адреса, ...?
Он должен измениться только после сброса настроек телефона до заводских (что также может произойти как побочный эффект разблокировки загрузчика).
Из командной строки его можно запросить командой getprop net.hostname
.
Следующая строка android-
— этоANDROID_ID
из Settings.Secure
, который являетсяслучайногенерируется при первом использовании телефона и сохраняется в /data
разделе [1]:
- в более старых версиях в /data/data/com.android.providers.settings/databases/settings.db
базе данных sqlite3.
- в более новых версиях в /data/system/users/USERID/settings_secure.xml
файле; обратите внимание, что USERID
не имеет отношения к unix uid.
Даже более новые версии (> 8.0) сделать ANDROID_ID
комбинацию ключей подписи уникальной для устройства/пользователя/приложения и полностью отказаться от net.hostname
, который больше не используется клиентом DHCP.
Кто-нибудь знает, что означает c0f659b6548c28b2? Это не Mac-адрес телефона.
Это должно быть случайным.
Могу ли я настроить имя хоста телефона Android?
Без рутирования [2] это сделать невозможно, но setprop net.hostname preferred_hostname
при наличии соответствующих привилегий [3] это должно получиться.
[1] Которые стираются при сбросе настроек к заводским.
[2] На некоторых устройствах такая возможность есть в разделе «Настройки / Параметры разработчика», но мне не удалось найти ее ни на одном из моих устройств.
[3] В новых версиях Android отсутствуют возможности и широко используется SELinux, поэтому простого получения прав root может быть недостаточно.