Wie kann ich die Public-Key-Authentifizierung verwenden, um auf einen SSH-Server unter Android zuzugreifen?

Wie kann ich die Public-Key-Authentifizierung verwenden, um auf einen SSH-Server unter Android zuzugreifen?

Auf meinem Android 4.4.2-Telefon (es ist alt, kann aber nicht aktualisiert werden) läuft ein SSH-Server mit der SimpleSSHD-App. Es generiert bei jeder Anmeldung ein anderes zufälliges Passwort, was für mich als Client-Benutzer sehr unpraktisch ist. Daher würde ich gerne die Authentifizierung mit öffentlichem Schlüssel verwenden.

Zuvor habe ich ein Paar aus öffentlichen und privaten Schlüsseln generiert, um auf einen SSH-Server zuzugreifen. Ich denke, es ist in Ordnung, das Schlüsselpaar wiederzuverwenden, also kopiere ich die öffentliche Schlüsseldatei auf das Android-Telefon:

$ 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...

Danach muss ich zur Anmeldung immer noch zufällige, vom Server generierte Passwörter eingeben.

Funktioniert das Kopieren der öffentlichen Schlüsseldatei auf das Android-Telefon nicht?

In welches Verzeichnis auf dem Android-Telefon soll die öffentliche Schlüsseldatei gehen?

Danke.

Antwort1

Dies ist kein Problem mit Android. Ich glaube, die Konvention zum Eingeben von Schlüsseln ~/.ssh/authorized_keysstammt von OpenSSH. Ich glaube nicht, dass es Teil des Standards (RFCs) ist. SimpleSSHDhat eine andere Konvention:

Schnellstart

  • Installieren Sie SimpleSSHD.
  • Stellen Sie auf jedem Computer, der eine Verbindung zu Ihrem Android-Gerät herstellt, den Port auf 2222 ein. Mit OpenSSH können Sie dies tun, indem Sie diese Zeilen in ~/.ssh/config einfügen:

    Host myphone
    Port 2222
    
  • Starten Sie SimpleSSHD, aktivieren Sie in den Einstellungen „Beim Booten starten“ und starten Sie es dann zum ersten Mal manuell.

  • Im Home-Verzeichnis anlegen authorized_keys(nicht verwenden ssh-copy-id)
  • Optional erstellen Sie .profile

Die Schlussfolgerung hieraus ist, dass Ihre autorisierten Schlüsseldateien ~/authorized_keysnicht sein sollten ~/.ssh/authorized_keys.

ssh-copy-idgeht anscheinend davon aus, dass jeder Server ein OpenSSH-Server ist. Da Sie Ihren öffentlichen Schlüssel bereits mit festgelegt haben ssh-copy-id, würde ich mich einfach anmelden und Folgendes ausführen:

mv ~/.ssh/authorized_keys ~

verwandte Informationen