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

これは Android の問題ではありません。キーを入力するという慣例は~/.ssh/authorized_keysOpenSSH から来ていると思います。標準 (RFC) の一部ではないと思います。SimpleSSHD異なる慣習がある:

クイックスタート

  • SimpleSSHDをインストールします。
  • Android デバイスに接続するすべてのコンピューターで、ポートを 2222 に設定します。OpenSSH では、~/.ssh/config に次の行を追加することでこれを実行できます。

    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 ~

関連情報