Генерация ключей SSH на сервере
Я настроил sshd на сервере Linux и смог войти через ключи, сгенерированные с помощью ssh-keygen
, Однако я сделал следующее наблюдение: когда я генерирую пару ключей на клиенте и копирую открытый ключ на сервер, все работает нормально. Но когда я генерирую пару ключей на сервере и копирую закрытый ключ на клиент, я не могу войти в систему. Кто-нибудь может объяснить мне, если и почему ключи должны быть созданы на клиенте?
2 ответа
Ключи не нужно создавать на клиенте. Ключи даже не нужно создавать с одной и той же ОС. Если вы используете правильные инструменты, вы можете преобразовать ключ, сгенерированный из генератора ключей Putty, в ключ формата OpenSSH.
Ваша проблема, скорее всего, связана с тем, что OpenSSH и некоторые другие клиенты SSH очень требовательны к разрешениям закрытых ключей.
В зависимости от того, как вы передали закрытый ключ клиенту, права доступа к ключу могут отличаться от сервера и могут быть неправильными. Закрытый ключ всегда должен быть 0600
или же -rw-------
,
Вы увидите предупреждение об этом на клиенте, если вы передадите -v
опция ssh при подключении. Он будет жаловаться на разрешения на закрытый ключ или, возможно, на каталог, содержащий закрытый ключ.
Каждый хост - и сервер, и клиент имеют два ключа - открытый и закрытый. Если вы хотите взаимного доверия, вам нужно сгенерировать ключи на обоих и передать один ключ от пары к другой (от обоих хостов).
Пожалуйста, прочитайте следующее руководство.