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.