
Мой телефон на базе 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 ~