如何使用公鑰身份驗證存取 Android 上的 ssh 伺服器?

如何使用公鑰身份驗證存取 Android 上的 ssh 伺服器?

我的 android 4.4.2(它很舊,但無法升級)手機透過 SimpleSSHD 應用程式運行 SSH 伺服器。它在每次登入時都會產生不同的隨機密碼,因此對於我作為客戶端使用者來說非常不方便。所以我想使用公鑰身份驗證。

之前我已經產生了一對公鑰和私鑰來存取 SSH 伺服器。我猜重複使用金鑰對是可以的,所以我將公鑰檔案複製到android手機:

$ ssh-copy-id -p 2222 192.168.1.87
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/t/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 
restorecon: invalid option -- F
usage:  restorecon [-nrRv] pathname...

之後我仍然需要輸入伺服器產生的隨機密碼才能登入。

複製公鑰檔案到android手機不行嗎?

公鑰檔案應該放在 Android 手機上的哪個目錄中?

謝謝。

答案1

這不是安卓的問題。我相信輸入金鑰的約定~/.ssh/authorized_keys來自 OpenSSH。我不相信它是標準(RFC)的一部分。簡單SSHD有不同的約定:

快速開始

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

    Host myphone
    Port 2222
    
  • 啟動 SimpleSSHD,並在“設定”中啟用“啟動時啟動”,然後首次手動啟動它。

  • 在主目錄中建立authorized_keys(不要使用ssh-copy-id
  • 可選擇製作 .profile

由此推斷,您的授權密鑰檔案~/authorized_keys不應該是~/.ssh/authorized_keys.

ssh-copy-id似乎假設每個伺服器都是 OpenSSH 伺服器。由於您已經使用設定了公鑰ssh-copy-id,我只需登入並運行:

mv ~/.ssh/authorized_keys ~

相關內容