Невозможно подключиться по ssh с ключом к моему Synology NAS

Невозможно подключиться по ssh с ключом к моему Synology NAS

Этот вопрос уже задавался много раз, но решения не работают для меня.
Я пытаюсь подключиться по ssh с ключом из системы Ubuntu к моему Synology NAS, но у меня все равно спрашивают пароль пользователя, потому что закрытый ключ слишком открыт

Я создал свои ключи в /opt/duplicati/config/.ssh id_rsa и id_rsa.pub
Затем я использовал ssh-copy-id для копирования открытого ключа на мой NAS.
Но когда я пытаюсь подключиться по ssh к моему NAS, я получаю это

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/opt/duplicati/config/.ssh/id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/opt/duplicati/config/.ssh/id_rsa.pub": bad permissions
[email protected]'s password:

Странно, что проблема связана с закрытым ключом, но он жалуется, что разрешение 0644 для открытого ключа слишком открыто.

Решение этой проблемы — уменьшить права доступа к обоим ключам и папке .ssh до 0400 или 0600, но когда я это делаю, кажется, что ssh больше не может прочитать файл, и я получаю эту ошибку

Load key "/opt/duplicati/config/.ssh/id_rsa.pub": error in libcrypto

Я уже пробовал это с root и с пользователем admin, но у меня не получается.
Это потому, что мои ключи не в обычной домашней папке ~/.ssh/?
Из другой системы Ubuntu я смог подключиться по ssh к моему NAS с ключом, сохраненным в ~/.ssh/

решение1

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'

Ваша фактическая проблема заключается в том, что вы используете неправильный файл ключа для параметра "-i". Файл с расширением ".pub" содержит публичную часть ключа. Соответствующий файл без расширения ".pub" содержит приватную часть ключа. Когда вы запускаете клиент ssh для подключения к удаленному серверу, вы должны предоставить клиенту ssh файл приватного ключа, а не файл открытого ключа.

У вас, вероятно, есть файл с именем "/opt/duplicati/config/.ssh/id_rsa" без расширения ".pub". Это файл, который вы должны использовать при запуске ssh:

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa '[email protected]'
                                                  ^--- no extension

Вы получаете ошибку о разрешениях, потому что файлы закрытого ключа содержат конфиденциальную информацию, поэтому sshпрограмма требует, чтобы файлы закрытого ключа имели разрешения, не позволяющие другим читать их. Файл открытого ключа (файл с расширением ".pub") не содержит конфиденциальной информации, поэтому инструмент, который создает файлы ключей, создает файл открытого ключа с менее строгими разрешениями.

решение2

Вот связанный opensslПроблема с GitHubи ошибка серверавопрос. В обеих ситуациях генерация нового ключа, похоже, сработала. Это могло быть вызвано проблемой совместимости или повреждения.

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