LINUX.ORG.RU
ФорумAdmin

ssh: проблема входа по ключу

 , ,


0

1

Добрый день! Схема хостов следующая: на Windows 10 установлен virtualbox, на который прикручен Ubuntu server, на котором развёрнут контейнер (lxc). На сервере (Ubuntu server) и lxc установлен openssh-server.Создал ключи: [code]ssh-keygen[code].

Скопировал ключ: [code]ssh-copy-id paa@192.168.0.103[code]

Вошёл по ssh: [code]ssh -v paa@192.168.56.103[code]

Система выдала: [code]~$ ssh -v paa@192.168.56.103 OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/.conf matched no files debug1: /etc/ssh/ssh_config line 21: Applying options for * debug1: Connecting to 192.168.56.103 [192.168.56.103] port 22. debug1: Connection established. debug1: identity file /home/paa/.ssh/id_rsa type 0 debug1: identity file /home/paa/.ssh/id_rsa-cert type -1 debug1: identity file /home/paa/.ssh/id_ecdsa type -1 debug1: identity file /home/paa/.ssh/id_ecdsa-cert type -1 debug1: identity file /home/paa/.ssh/id_ecdsa_sk type -1 debug1: identity file /home/paa/.ssh/id_ecdsa_sk-cert type -1 debug1: identity file /home/paa/.ssh/id_ed25519 type -1 debug1: identity file /home/paa/.ssh/id_ed25519-cert type -1 debug1: identity file /home/paa/.ssh/id_ed25519_sk type -1 debug1: identity file /home/paa/.ssh/id_ed25519_sk-cert type -1 debug1: identity file /home/paa/.ssh/id_xmss type -1 debug1: identity file /home/paa/.ssh/id_xmss-cert type -1 debug1: identity file /home/paa/.ssh/id_dsa type -1 debug1: identity file /home/paa/.ssh/id_dsa-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_8.9p1 Ubuntu-3 debug1: Remote protocol version 2.0, remote software version OpenSSH_8.9p1 Ubuntu-3 debug1: compat_banner: match: OpenSSH_8.9p1 Ubuntu-3 pat OpenSSH compat 0x04000000 debug1: Authenticating to 192.168.56.103:22 as ‘paa’ debug1: load_hostkeys: fopen /home/paa/.ssh/known_hosts2: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: algorithm: curve25519-sha256 debug1: kex: host key algorithm: ssh-ed25519 debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: compression: none debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: compression: none debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: SSH2_MSG_KEX_ECDH_REPLY received debug1: Server host key: ssh-ed25519 SHA256:7+bYI7Xh4NLxEEc40xmfja9/F2KtAJ+k8c7nOy2I8B4 debug1: load_hostkeys: fopen /home/paa/.ssh/known_hosts2: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory debug1: hostkeys_find_by_key_hostfile: hostkeys file /home/paa/.ssh/known_hosts2 does not exist debug1: hostkeys_find_by_key_hostfile: hostkeys file /etc/ssh/ssh_known_hosts does not exist debug1: hostkeys_find_by_key_hostfile: hostkeys file /etc/ssh/ssh_known_hosts2 does not exist The authenticity of host ‘192.168.56.103 (192.168.56.103)’ can’t be established. ED25519 key fingerprint is SHA256:7+bYI7Xh4NLxEEc40xmfja9/F2KtAJ+k8c7nOy2I8B4. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])?[code]

Т.е., приходится вводить пароль. Я иначе скопировал ключ: [code]~$ cat .ssh/id_rsa.pub | ssh paa@192.168.56.103 ‘cat >> .ssh/authorized_keys’[code].

Система ответила: [code]The authenticity of host ‘192.168.56.103 (192.168.56.103)’ can’t be established. ED25519 key fingerprint is SHA256:7+bYI7Xh4NLxEEc40xmfja9/F2KtAJ+k8c7nOy2I8B4. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Failed to add the host to the list of known hosts (/home/paa/.ssh/known_hosts). hostfile_replace_entries: link /home/paa/.ssh/known_hosts to /home/paa/.ssh/known_hosts.old: Operation not permitted update_known_hosts: hostfile_replace_entries failed for /home/paa/.ssh/known_hosts: Operation not permitted[code]. Проверил права на файл в контейнере: [code]s -l /home/paa/.ssh/known_hosts[code].

Права следующие: [code]-rwxr-xr-x 1 paa paa 978 Dec 20 15:47 /home/paa/.ssh/known_hosts[code].


Ответ на: комментарий от t184256

[code]The authenticity of host ‘192.168.56.103 (192.168.56.103)’ can’t be established. ED25519 key fingerprint is SHA256:RXu5BrQq/ZMzxtffwac9Yg40YWaaiBe0CUe16ULGHnM. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])?[/code]

Набираю yes, появляется сообщение: [code]Failed to add the host to the list of known hosts (/home/paa/.ssh/known_hosts). paa@192.168.56.103’s password: [/code] Ввожу пароль, только после этого захожу.

paa66
() автор топика
Ответ на: комментарий от paa66

Failed to add the host to the list of known hosts (/home/paa/.ssh/known_hosts)

ссш-клиент не может записать ключ сервера в локальный файл известных ключей. смотри доступы, пути и все такое. в принципе пофиг, просто при каждом подключении будет спрашивать «а вы доверяете этому серверу ??»

а внутри контейнера lxc есть возможность записи в файл ?? зайди по паролю и посмотри содержимое authorized_keys

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 5)

Проверьте, что вручную можно создавать и править файлы на клиенте там.

И лучше «сдвинуть» неиспользуемые id_* в какую-нибудь вспомогательную директорию - видал ситуации, когда подбор подходящего ключа приводил ко временному бану подключения к интересующему серверу (под используемым пользователем).

NDfan
()
Ответ на: комментарий от pfg

Файла authorized_keys в контейнере не оказалось. Я создал его командой:

cat ~/.ssh/id_rsa.pub | ssh paa@192.168.56.103 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

В этом файле появилась дополнительная запись. Но при попытке зайти по ssh в контейнер всё равно появляется «а вы доверяете этому серверу ??»

Я настроил доступ к серверу из контейнера по ssh и в этом случае система не задаёт вопрос «а вы доверяете этому серверу ??». Делаю то же самое на сервере и без этого вопроса никак не получается. Мне надо автоматизировать это дело, поэтому надо настроить ssh на сервере так, чтобы система не задавала этого вопроса.

paa66
() автор топика
Ответ на: комментарий от NDfan

Создаю файлы в контейнере с помощью mc, редактирую с помощью nano, проблем не возникает. Вы это имели в виду, говоря о проверке возможности вручную создавать и править файлы?

paa66
() автор топика
Ответ на: комментарий от paa66

Видимо, да: что под пользователем paa можно зайти и поправить ~/.ssh/known_hosts, равно как и соседние файлы в той директории.

Есть ещё вариант, что с конфигом sshd что-то намудрено. Например, пользователю наследуется Subsystem или что-то из Allow* Deny* Permit*

Или в authorized_keys уже есть запись с ограничениями прав (но это врядли, насколько виду обсуждение). Почитать можно тут

man ssh | grep netstart

Но, вообще говоря, в логах безопасности стоит поискать записи, нам обычно всё пишется. Можно банально "tail -f лог1 лог2 лог2" запустить в соседней консоли, и подключаться.

NDfan
()
Ответ на: комментарий от paa66

ну дык это ж давно было известно. за хранение доверенных ключей удаленных серверов на локальной машине отвечает файл, в который у тебя почему-то нет записи.
Failed to add the host to the list of known hosts (/home/paa/.ssh/known_hosts)
разбирайся что там с ним. как вариант нет необходимой папки или права кривые или еще что-то…
ssh-клиент должен иметь право записи в него.

pfg ★★★★★
()