Dove aggiungere le chiavi SSH per consentire le connessioni al server remoto su Android?


10

Sto usando un kernel Android personalizzato (Gingerbread) con root e sono in grado di connettermi a un server SSH remoto con autenticazione password usando busybox e un'app di emulazione terminale. Vorrei poter usare le chiavi SSH per l'accesso automatico; È possibile? In tal caso, dove devo inserire la mia chiave privata?

Risposte:


10

Non è altrettanto semplice, ma il sshbinario fornito da busybox (il mio, almeno) supporta la -ibandiera, quindi puoi posizionare la chiave dove vuoi e usarla:

ssh -i /path/to/key_file joeuser@somehost.com

La voce della pagina man pertinente per -i(con l'avvertenza che le informazioni sul percorso predefinito potrebbero non essere le stesse su Android):

-i identity_file

         Selects a file from which the identity (private key) for public
         key authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and
         ~/.ssh/id_rsa for protocol version 2.  Identity files may also be
         specified on a per-host basis in the configuration file.  It is
         possible to have multiple -i options (and multiple identities
         specified in configuration files).  ssh will also try to load
         certificate information from the filename obtained by appending
         -cert.pub to identity filenames.

Grazie, ci avevo pensato, ma non sono mai riuscito a provarlo. Sembra strano che non ci sia posto in cui il comando ssh cercherà la directory .ssh ... forse è perché non c'è $ HOME impostato?
yuttadhammo,

2
@Yuttadhammo: La cosa strana è che $HOME(per root) è impostato /datasul mio telefono, ma sshsembra ignorare tutte le directory che cerco di impostare lì. Non ho mai capito perché, ma non ho nemmeno avuto bisogno di scavare.
eldarerathis,

@Yuttadhammo Nel mio telefono, echo $HOMEnon restituisce nulla (anche per il root). Se questo è anche il tuo caso, è il motivo per cui il tuo client SSH non può vedere le chiavi per impostazione predefinita. Ma, con -iflag, puoi ignorare il percorso predefinito, quindi non ha senso guardare $ HOME. Questa è la soluzione corretta se supportata dal client SSH ridotto. Quindi, provalo dopo aver messo le chiavi su sdcard. Se fallisce, non c'è altro modo se non si cambia client SSH.
Android Quesito,

Grande. Ha funzionato per me.
user20203293928832

6

Installa ed esegui ConnectBot (un client SSH dedicato). Toccare / premere il tasto menu. Dal menu, tocca Manage Pubkeys. Nella schermata successiva, premere di nuovo / toccare il tasto menu. Dal menu, tocca Import.


Grazie, l'ho appena fatto - bella app; non c'è modo di mettere semplicemente una chiave da qualche parte e fare in modo che la scatola occupata la raccolga?
Yuttadhammo,

@Yuttadhammo Non credo che il packaging predefinito di Busybox offra client SSH. Puoi essere più specifico con il tuo client SSH (che può essere un'utilità esterna)?
Android Quesito,

Inoltre, ricorda ... poiché le applet busybox sono ridotte della versione originale, il tuo client SSH da riga di comando potrebbe non supportare l'autenticazione con chiave, ma è molto improbabile. Parlami del tuo client SSH.
Android Quesito,

Grazie, ConnectBot è la soluzione che userò, ma il flag -i è molto più vicino a rispondere alla domanda.
yuttadhammo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.