Gdzie dodać klucze SSH, aby umożliwić połączenia ze zdalnym serwerem na Androidzie?


10

Używam zrootowanego niestandardowego jądra Androida (Gingerbread) i jestem w stanie połączyć się ze zdalnym serwerem SSH z uwierzytelnianiem za pomocą hasła za pomocą busybox i emulatora terminali. Chciałbym móc używać kluczy SSH do automatycznego logowania; czy to możliwe? Jeśli tak, to gdzie powinienem umieścić mój klucz prywatny?

Odpowiedzi:


10

Nie jest tak płynny, ale sshplik binarny dostarczany przez busybox (przynajmniej mój) obsługuje -iflagę, więc możesz umieścić klucz w dowolnym miejscu i użyć go:

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

Odpowiedni wpis strony-i podręcznika dla (z zastrzeżeniem, że informacje o domyślnej ścieżce mogą nie być takie same w systemie 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.

Dzięki, myślałem o tym, ale nigdy nie próbowałem tego. Po prostu wydaje się dziwne, że nie ma miejsca, w którym komenda ssh będzie szukać katalogu .ssh ... może to dlatego, że nie ustawiono $ HOME?
— yuttadhammo

2
@Yuttadhammo: Dziwne jest to, że $HOME(dla roota) jest ustawiony /datana moim telefonie, ale sshwydaje się ignorować katalogi, które próbuję tam skonfigurować. Nigdy tak naprawdę nie odkryłem, dlaczego tak jest, ale nie musiałem też naprawdę w to zagłębiać się.
— eldarerathis

@ Yuttadhammo W moim telefonie echo $HOMEnic nie zwraca (nawet rootowanie ). Jeśli tak jest również w twoim przypadku, jest to powód, dla którego twój klient SSH domyślnie nie widzi kluczy. Ale z -iflagą możesz zastąpić domyślną ścieżkę, więc nie ma sensu szukać $ HOME. To poprawne rozwiązanie, jeśli Twój skrócony klient SSH obsługuje go. Więc wypróbuj po włożeniu kluczy do sdcard. Jeśli się nie powiedzie, nie będzie innego wyjścia, chyba że zmienisz klienta SSH.
— Android Quesito

Świetny. Pracował dla mnie.
— user20203293928832

6

Zainstaluj i uruchom ConnectBot (dedykowany klient SSH). Naciśnij / naciśnij klawisz menu. W menu dotknij Manage Pubkeys. Na następnym ekranie ponownie naciśnij / naciśnij klawisz menu. W menu dotknij Import.


Dzięki, właśnie to zrobiłem - fajna aplikacja; czy nie ma sposobu, aby po prostu gdzieś umieścić klucz i odebrać go przez busybox?
— yuttadhammo

@Yuttadhammo Nie sądzę, że domyślne opakowanie Busybox zapewnia klienta SSH. Czy możesz dokładniej określić swój klient SSH (który może być narzędziem zewnętrznym)?
— Android Quesito

Pamiętaj również, że ponieważ aplety busyboksa są skracane w stosunku do oryginalnych, klient SSH z wiersza poleceń może nie obsługiwać uwierzytelniania za pomocą klucza, ale jest to mało prawdopodobne. Po prostu powiedz mi o swoim kliencie SSH.
— Android Quesito

Dzięki, ConnectBot jest rozwiązaniem, którego będę używać, ale flaga -i jest naprawdę bliższa odpowiedzi na pytanie.
— yuttadhammo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.