Создание сертификатов SSH для SFTP с использованием CA

464
JustAGuy

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

Вот что я имел в виду:

1 - Создать открытый и закрытый ключ CA.

2 - Использовать открытый ключ CA с SFTP-сервером (TrustedUserCAKeys).

3 - Генерация пользовательского частного + открытого ключа.

4 - Подпишите личный ключ пользователя с помощью CA.

5 - Подключитесь к SFTP-серверу, используя закрытый ключ, имя пользователя и winscp.

Должно ли это работать?

0

1 ответ на вопрос

1
grawity

Центры сертификации подписывают открытый ключ (производит сертификат). Они никогда не видят закрытый ключ получателя.

Кроме того, рабочий процесс кажется правильным, за исключением части WinSCP.

Сертификаты, используемые TrustedUserCAKeys, представляют собой формат, изобретенный OpenSSH. В настоящее время никакое другое программное обеспечение не поддерживает этот тип проверки подлинности сертификата - вот запись списка желаний PuTTY для них. Поскольку WinSCP использует PuTTY в качестве своего ядра SSH, у него нет поддержки сертификатов OpenSSH, и он не будет иметь ее до тех пор, пока PuTTY не сделает это.

Я проснулся от этого. Это означает, что мне придется преобразовать ключ в формат ppk, который WINSCP предлагает прямо из коробки, поскольку он обнаруживает что-то еще. JustAGuy 5 лет назад 0
Я думаю, мне придется попробовать сейчас :) Ура. JustAGuy 5 лет назад 0
Я не говорю о формате ключей OpenSSH. Преобразование ключа само по себе ничего не дает, потому что клиент по-прежнему не сможет отправить _signed сертификат_ на сервер. grawity 5 лет назад 0
Это звучит странно ... Если преобразование бесполезно, то почему оно предлагает его автоматически? А еще лучше, что нужно сделать, чтобы сделать это правильно? JustAGuy 5 лет назад 0
Он предлагает преобразовать закрытый ключ, потому что вы импортируете закрытый ключ. Это _separate file_ от сертификата, который создает подпись, и процесс преобразования просто проигнорирует часть «сертификата», потому что WinSCP не будет знать, что с ним делать. Таким образом, сервер не будет знать, что пара ключей была подписана. grawity 5 лет назад 0
Таким образом, мое единственное решение для Windows - использовать программное обеспечение на основе OpenSSH? Есть ли такая вещь? JustAGuy 5 лет назад 0
@JustAGuy Существует [сборка Microsoft OpenSSH для Windows] (https://github.com/PowerShell/Win32-OpenSSH). Martin Prikryl 5 лет назад 1
Я немного смущен. Разве мне не нужен закрытый ключ для установления связи с SFTP? Если я только подпишу открытый ключ ... тогда что будет? JustAGuy 5 лет назад 0
@JustAGuy: оба используются одновременно, по-разному. (Вы должны отправить весь открытый ключ, чтобы сервер знал, кто вы, поэтому подписанный сертификат должен быть частью этого. Вы также используете закрытый ключ, чтобы вычислить доказательство того, что он действительно принадлежит вам. Однако закрытый ключ никогда не отправляется куда-либо, используется только в расчетах, поэтому нет смысла подписывать его.) Для получения более подробной информации вы должны искать «Как работают SSL-сертификаты» - потому что механизмы почти идентичны. grawity 5 лет назад 0

Похожие вопросы