Di mana menambahkan kunci SSH untuk memungkinkan koneksi ke server jarak jauh di Android?

10

Saya menggunakan kernel Android khusus yang telah di-root (Gingerbread), dan saya dapat terhubung ke server SSH jarak jauh dengan otentikasi kata sandi menggunakan busybox dan aplikasi terminal emulator. Saya ingin dapat menggunakan kunci SSH untuk masuk otomatis; apakah ini mungkin? Jika demikian, di mana saya harus meletakkan kunci pribadi saya?

yuttadhammo
sumber

Jawaban:

10

Ini tidak sepenuhnya mulus, tetapi sshbiner yang disediakan oleh busybox (tambang, setidaknya) mendukung -iflag, sehingga Anda dapat meletakkan kunci di mana pun Anda inginkan dan menggunakannya:

ssh -i /path/to/key_file [email protected]

Entri halaman manual yang relevan untuk -i(dengan peringatan bahwa informasi tentang jalur default mungkin tidak sama pada 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.
eldarerathis
sumber
Terima kasih, saya sudah memikirkan hal itu, tetapi tidak pernah sempat mencobanya. Sepertinya aneh bahwa tidak ada tempat di mana perintah ssh akan mencari direktori .ssh ... mungkin karena tidak ada set $ HOME?
yuttadhammo
2
@Yuttadhammo: Yang aneh adalah bahwa $HOME(untuk root) diatur ke /dataponsel saya, tetapi sshtampaknya mengabaikan direktori yang saya coba atur di sana. Saya tidak pernah benar-benar mencari tahu mengapa itu terjadi, tetapi saya juga tidak memiliki kebutuhan untuk benar-benar menggali ke dalamnya.
eldarerathis
@Yuttadhammo Di telepon saya, echo $HOMEtidak mengembalikan apa pun (bahkan untuk root). Jika itu adalah kasus Anda juga, itulah alasan mengapa klien SSH Anda tidak dapat melihat kunci secara default. Tapi, dengan -iflag, Anda bisa mengganti jalur default, jadi tidak ada gunanya mencari $ HOME. Ini adalah solusi yang tepat jika klien SSH Anda yang dipangkas mendukungnya. Jadi, cobalah setelah meletakkan kunci di sdcard. Jika gagal, tidak ada cara lain kecuali Anda mengubah klien SSH.
Android Quesito
Bagus. Bekerja untukku.
user20203293928832
6

Instal & jalankan ConnectBot (klien SSH khusus). Ketuk / tekan tombol menu. Dari menu, ketuk Manage Pubkeys. Di layar berikutnya, tekan kembali tombol menu. Dari menu, ketuk Import.

Android Quesito
sumber
Terima kasih saya sebenarnya baru saja melakukannya - aplikasi yang bagus; Apakah tidak ada cara untuk hanya meletakkan kunci di suatu tempat dan memiliki busybox mengambilnya?
yuttadhammo
@Yuttadhammo Saya tidak berpikir kemasan standar Busybox menyediakan klien SSH. Bisakah Anda lebih spesifik dengan klien SSH Anda (yang mungkin merupakan utilitas eksternal)?
Android Quesito
Juga, ingat .. karena applet busybox dipangkas versi yang asli, klien SSH baris perintah Anda mungkin tidak mendukung otentikasi dengan kunci, tetapi sangat tidak mungkin. Ceritakan tentang klien SSH Anda.
Android Quesito
Terima kasih, ConnectBot adalah solusi yang akan saya gunakan, tetapi flag -i benar-benar lebih dekat untuk menjawab pertanyaan.
yuttadhammo