Как использовать аутентификацию с открытым ключом для доступа к SSH-серверу на Android?

Как использовать аутентификацию с открытым ключом для доступа к SSH-серверу на Android?

Мой телефон на базе Android 4.4.2 (он старый, но не может быть обновлен) использует SSH-сервер с помощью приложения SimpleSSHD. Он генерирует разные случайные пароли при каждом входе в систему, поэтому для меня как для пользователя-клиента это очень неудобно. Поэтому я хотел бы использовать аутентификацию с открытым ключом.

Ранее я сгенерировал пару открытого и закрытого ключей для доступа к SSH-серверу. Думаю, можно повторно использовать пару ключей, поэтому я копирую файл открытого ключа на телефон Android:

$ ssh-copy-id -p 2222 192.168.1.87
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/t/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 
restorecon: invalid option -- F
usage:  restorecon [-nrRv] pathname...

После этого мне все равно приходится вводить случайные пароли, сгенерированные сервером, чтобы войти в систему.

Копирование файла открытого ключа на телефон Android не работает?

В какой каталог на телефоне Android следует поместить файл открытого ключа?

Спасибо.

решение1

Это не проблема Android. Я думаю, что соглашение о вводе ключей ~/.ssh/authorized_keysвзято из OpenSSH. Я не думаю, что это часть стандарта (RFC). SimpleSSHDимеет другую конвенцию:

Быстрый старт

  • Установите SimpleSSHD.
  • На любом компьютере, который будет подключаться к вашему устройству Android, установите порт 2222. С помощью OpenSSH это можно сделать, поместив следующие строки в ~/.ssh/config:

    Host myphone
    Port 2222
    
  • Запустите SimpleSSHD и в настройках включите «Запуск при загрузке», затем вручную запустите его в первый раз.

  • Создать authorized_keysв домашнем каталоге (не использовать ssh-copy-id)
  • При желании можно сделать .profile

Из этого следует, что ваши файлы авторизованных ключей ~/authorized_keysне должны иметь расширение ~/.ssh/authorized_keys.

ssh-copy-idпохоже, предполагает, что каждый сервер является сервером OpenSSH. Поскольку вы уже установили свой открытый ключ с помощью ssh-copy-id, я бы просто вошел в систему и запустил:

mv ~/.ssh/authorized_keys ~

Связанный контент