SSH использует два разных набора асимметричных (частных / открытых) ключей - один для аутентификации хоста / сервера на клиенте (ах) и, опционально, другой для аутентификации клиента на хосте / сервере.
Конфигурация HostKey
в sshd_config
предназначена для ключей для хоста, а не для любого клиента. Директива в sshd_config
которая включает аутентификацию pubkey для клиентов, называется PubKeyAuthentication
, но вам не нужно указывать (или обычно раскомментировать) ее, потому что она включена по умолчанию.
Он должен работать и работает для меня, чтобы преобразовать сгенерированный OpenSSH ключ с PuTTYgen и использовать его в PuTTY, как вы описали, но ТОЛЬКО если он находится в ~/.ssh/authorized_keys
для соответствующего пользователя (*) - это требуется для ЛЮБОГО клиентского ключа, независимо от того, где и как сгенерирован. Генерация ключа в одной системе Unix не добавляет его автоматически в authorized_keys
в этой системе (поскольку для доступа к системе, в которой вы уже находитесь, обычно не требуется ssh), ни в какую-либо другую систему (поскольку эта система не может знать, какие другие системы вы можете захотеть получить доступ, в том числе, возможно, через несколько лет). Вы упоминаете добавление к authorized_keys
только для нового PuTTYgen сгенерированного ключа, а не Unix-сгенерирован и PuTTYgen преобразованный один.
(*) или другое местоположение, если оно указано AuthorizedKeysFile
в sshd_config
но это редко