
Ao configurar a autenticação de chave pública no servidor SimpleSSHD no meu telefone Android, porhttp://www.galexander.org/software/simplesshd/
Começo rápido
- Instale o SimpleSSHD.
Em qualquer computador que se conectará ao seu dispositivo Android, defina a porta para 2222. Com OpenSSH, isso pode ser feito colocando estas linhas em ~/.ssh/config:
Host myphone Port 2222
Inicie o SimpleSSHD e, em Configurações, ative "Iniciar na inicialização" e, em seguida, inicie-o manualmente pela primeira vez.
- Crie
authorized_keys
no diretório inicial (não usessh-copy-id
)- Opcionalmente, faça .profile
como posso descobrir o nome do host myphone
do meu telefone Android?
Meu telefone recebe endereços IP diferentes de tempos em tempos. Por exemplo, posso mover meu laptop e telefone para LANs diferentes e meu telefone pode se reconectar à mesma LAN.
Algumas tentativas do meu laptop:
Primeira tentativa (falha):
$ ssh -p 2222 192.168.1.87
user@C6730:/data/data/org.galexander.sshd/files $ hostname
sh: hostname: not found
Segunda tentativa (falha):
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
Terceira tentativa (sucesso com alguma sorte adivinhando):
Encontro todos os hosts na LAN sudo nmap -sP 192.168.1.0/24
e adivinho qual host na saída é provavelmente o telefone. é algo como android-c0f659b6548c28b2
(não o nome real do host)
Será
android-c0f659b6548c28b2
alterado em alguns casos, por exemplo, quando o telefone for reiniciado, movido para uma LAN diferente, atribuído um endereço IP diferente, ...?Alguém sabe o que
c0f659b6548c28b2
significa? Não é o endereço Mac do telefone.Posso personalizar o nome do host do telefone Android?
Obrigado.
Responder1
Será
android-c0f659b6548c28b2
alterado em alguns casos, por exemplo, quando o telefone for reiniciado, movido para uma LAN diferente, atribuído um endereço IP diferente, ...?
Ele só deve mudar quando você redefinir o telefone para os padrões de fábrica (o que também pode acontecer como um efeito colateral do desbloqueio do bootloader).
Na linha de comando, ele pode ser consultado pelo getprop net.hostname
comando.
A string a seguir android-
é aANDROID_ID
de Settings.Secure
, que éaleatoriamentegerado quando você usa seu telefone pela primeira vez e é armazenado na /data
partição [1]:
- em versões mais antigas, no /data/data/com.android.providers.settings/databases/settings.db
banco de dados sqlite3.
- nas versões mais recentes, no /data/system/users/USERID/settings_secure.xml
arquivo; observe que o USERID
não está relacionado a uids unix.
Mesmo versões mais recentes (> 8,0) faça a ANDROID_ID
combinação exclusiva da chave de assinatura do dispositivo/usuário/aplicativo e dispense completamente o net.hostname
, que não é mais usado pelo cliente dhcp.
Alguém sabe o que significa c0f659b6548c28b2? Não é o endereço Mac do telefone.
Deve ser aleatório.
Posso personalizar o nome do host do telefone Android?
Não sem fazer o root [2], caso em que setprop net.hostname preferred_hostname
com os privilégios certos [3] deveria fazê-lo.
[1] Que é limpo em uma redefinição de fábrica.
[2] Alguns dispositivos têm uma opção para isso em "Configurações/Opções do desenvolvedor", mas não consegui encontrá-la em nenhum dos meus dispositivos.
[3] Versões mais recentes do Android eliminam recursos e usam o SELinux extensivamente, portanto, simplesmente tornar-se root pode não ser suficiente.