Куди додати SSH ключі, щоб дозволити з'єднання з віддаленим сервером на Android?


10

Я використовую вкорінене користувальницьке ядро ​​Android (Gingerbread) і можу підключитися до віддаленого SSH-сервера з автентифікацією пароля за допомогою busybox та програми емулятора терміналу. Я хотів би мати можливість використовувати SSH-ключі для автоматичного входу; це можливо? Якщо так, то де я повинен класти свій приватний ключ?

Відповіді:


10

Це не зовсім безшовно, але sshдвійковий файл, який надається зайнятим ящиком (принаймні мій), підтримує -iпрапор, тож ви можете поставити ключ куди завгодно і використовувати це:

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

Відповідна запис чоловічої сторінки для -i(із застереженням, що інформація про шлях за замовчуванням може бути не однаковою для 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.

Дякую, я про це думав, але ніколи не намагався його спробувати. Просто дивно здається, що немає місця, де команда ssh шукатиме каталог .ssh ... можливо, це тому, що $ HOME не встановлено?
yuttadhammo

2
@Yuttadhammo: Дивна річ у тому, що $HOME(для root) встановлено /dataна моєму телефоні, але, sshздається, ігнорує будь-які каталоги, які я намагаюся там створити. Я ніколи не розумів, чому це так, але і в мене не було потреби пориватись.
eldarerathis

@Yuttadhammo У моєму телефоні echo $HOMEнічого не повертається (навіть для root). Якщо це теж ваш випадок, це причина, через яку ваш клієнт SSH не може бачити ключі за замовчуванням. Але, використовуючи -iпрапор, ви можете змінити шлях за замовчуванням, тому немає сенсу шукати $ HOME. Це правильне рішення, якщо ваш оброблений клієнт SSH підтримує його. Отже, спробуйте після того, як кладете ключі на sdcard. Якщо це не вдасться, іншого способу немає, якщо ви не зміните клієнта SSH.
Android Quesito

Чудово. Працювали для мене.
користувач20203293928832

6

Встановити та запустити ConnectBot (виділений SSH-клієнт). Торкніться / натисніть клавішу меню. У меню торкніться піктограми Manage Pubkeys. На наступному екрані знову натисніть / натисніть клавішу меню. У меню торкніться піктограми Import.


Спасибі, я насправді просто зробив це - приємне додаток; хіба немає способу просто десь покласти ключ і зайняти його?
yuttadhammo

@Yuttadhammo Я не думаю, що упаковка Busybox за замовчуванням забезпечує клієнта SSH. Чи можете ви бути більш конкретними з вашим клієнтом SSH (що може бути зовнішньою утилітою)?
Android Quesito

Крім того, пам’ятайте .. оскільки апплети для зайнятих ящиків оброблені версією оригінальних, ваш клієнтський рядок SSH клієнт може не підтримувати автентифікацію за допомогою ключа, але це дуже малоймовірно. Просто розкажіть про свого клієнта SSH.
Android Quesito

Дякую, ConnectBot - це рішення, яке я буду використовувати, але прапор -i дійсно ближче до відповіді на питання.
yuttadhammo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.