如何知道用于 SSH 连接的 Android 手机的主机名?

如何知道用于 SSH 连接的 Android 手机的主机名?

在我的 Android 手机上的 SimpleSSHD 服务器上设置公钥身份验证时,通过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发生变化,例如,当手机重新启动、移动到不同的 LAN、分配不同的 IP 地址时,...?

  • 有谁知道是什么c0f659b6548c28b2意思吗?它不是手机的 Mac 地址。

  • 我可以自定义Android手机的主机名吗?

谢谢。

答案1

在某些情况下会android-c0f659b6548c28b2发生变化,例如,当手机重新启动、移动到不同的 LAN、分配不同的 IP 地址时,...?

仅当您将手机恢复出厂设置时,它才会发生变化(这也可能是解锁其引导加载程序的副作用)。

在命令行中,可以通过命令进行查询getprop net.hostname

下面的字符串android-ANDROID_IDSettings.Secure,即随机地当您第一次使用手机时生成并存储在/data分区[1]中:

- 在旧版本中,在/data/data/com.android.providers.settings/databases/settings.dbsqlite3 数据库中。

- 在较新的版本中,在/data/system/users/USERID/settings_secure.xml文件中;请注意,USERID与 unix uids 无关。

甚至较新的版本(> 8.0) 使ANDROID_ID设备/用户/应用程序签名密钥组合具有唯一性,并完全省去net.hostnamedhcp 客户端不再使用的 。

有谁知道c0f659b6548c28b2 是什么意思?它不是手机的 Mac 地址。

它应该是随机的。

我可以自定义Android手机的主机名吗?

并非没有 root 权限 [2],在这种情况下,setprop net.hostname preferred_hostname具有正确的权限 [3] 就可以做到这一点。

[1] 恢复出厂设置后会被清除。

[2] 有些设备在“设置/开发者选项”下有一个选项,但我无法在我的任何设备上找到它。

[3] 较新版本的 Android 放弃了功能并广泛使用 SELinux,因此仅仅成为 root 可能还不够。

相关内容