如何知道用於 SSH 連線的 Android 手機的主機名稱?

如何知道用於 SSH 連線的 Android 手機的主機名稱?

在我的 Android 手機上的 SimpleSSHD 伺服器上設定公鑰身份驗證時,透過http://www.galexander.org/software/simplesshd/

快速開始

  • 安裝 SimpleSSHD。
  • 在任何要連接到 Android 裝置的電腦上,將連接埠設定為 2222。

    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 可能還不夠。

相關內容