Ваши публичные ключи SSH доставляют вам неприятности? Попробуйте одно из этих решений.

SSH — полезный инструмент для подключения к удаленным машинам, но в Linux вы можете столкнуться с ошибкой «Отказано в доступе (открытый ключ)», связанной с вашим открытым ключом. К счастью, есть несколько простых решений, которые вы можете попытаться устранить.

Что такое открытый ключ?

Когда вы создаете пару ключей для SSH в Linux, вам будут предоставлены открытый и закрытый ключи. Закрытый ключ останется с вами как тщательно охраняемый секрет, а открытый ключ будет передан на удаленные серверы, чтобы вы могли войти в систему без пароля. Ваш локальный SSH-клиент будет сопоставлять открытый ключ с закрытым ключом при подключении.

Преимущество этого метода в том, что вам нужно только предоставить открытый ключ. Пока вы храните свой закрытый ключ в секрете, это обеспечит вашу безопасность в случае, если ваш открытый ключ будет скомпрометирован. Открытый ключ сам по себе будет бесполезен.

OpenSSH, наиболее широко используемый SSH-клиент и сервер в мире с открытым исходным кодом, требует наличия файла, содержащего любые открытые ключи на удаленном компьютере («.ssh/authorized_keys» в вашем домашнем каталоге), чтобы иметь определенные разрешения. Это не будет работать, если для других пользователей установлены права на запись, что называется «доступностью для записи всем». Поскольку имя каталога начинается с точки (.), оно не будет отображаться ни в каких списках ls, если вы не используете команду команда

instagram viewer
лс -А.

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

Проверьте разрешения вашего открытого ключа

Файлauthorized_keys — это простой текстовый файл, содержащий все открытые ключи клиентов, с помощью которых вы хотите иметь возможность войти в свою учетную запись на удаленном компьютере. Чтобы просмотреть его разрешения, используйте команду ls с опцией -l:

ls -l ~/.ssh/authorized_keys

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

Вы хотите, чтобы этот файл был доступен для записи вам, но не группе или другим лицам. Чтобы предоставить доступ нужным пользователям, вы можете изменить разрешения с помощью chmod.

Есть два пути: численный и символический.

Числовой способ короче, но вам придется запомнить восьмеричные номера разрешений:

chmod 700 ~/.ssh/authorized_keys

Символический метод более мнемоничен:

chmod go-w ~/.ssh/authorized_keys

Безопасное копирование ключей с помощью ssh-агента

Вы можете вручную скопировать и вставить любые открытые ключи со своего компьютера в ~/.ssh/.authorized_keys файл, но использование программы ssh-agent уменьшит вероятность ошибок в разрешениях.

Чтобы запустить ssh-агент, используйте следующую команду:

eval "$(ssh-agent-s)"

Чтобы войти на удаленный сервер с помощью ssh-агента, используйте опцию -A с ssh.

ssh -A [email protected]

Проверьте настройки sshd удаленного сервера

Если какая-либо из этих попыток не увенчалась успехом, вам, возможно, придется внести некоторые изменения в конфигурацию sshd-сервера на удаленном компьютере, если у вас есть root-доступ. В противном случае вам, вероятно, придется связаться с системным администратором, чтобы помочь вам решить любые проблемы с подключением SSH. Это крайний вариант, поскольку он может сделать вашу систему менее безопасной.

Общесистемный файл конфигурации для sshd: /etc/ssh/sshd_config. Поскольку он принадлежит пользователю root, для его редактирования вам потребуется использовать sudo. Например, чтобы отредактировать его с помощью Vim:

sudo vim /etc/ssh/sshd_config

Чтобы sshd позволял вам входить в систему, даже если ваш файлauthorized_keys доступен для записи всем, установите для параметра «StrictModes» значение «нет» в этом файле.

Сохраните его и перезапустите SSH-сервер:

sudo systemctl restart sshd.service

Теперь вы можете исправить ошибки разрешений открытого ключа SSH

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