Я управляю SSH-сервером и хочу проверять его, когда клиенты пытаются пройти аутентификацию. Я прочитал пару туториалов (Как создать SSH CA для проверки хостов и клиентов с помощью Ubuntu и ИСПОЛЬЗОВАНИЕ ОТКРЫТОГО СЕРТИФИКАТА АУТЕНТИФИКАЦИИ). Оба описывают, как я могу использовать самоподписанный ЦС для подписи моего ключа публикации сервера SSH. Но в этом случае у меня уже есть сертификат CA от GeoTrust, и я бы хотел его использовать.
Правильно ли следовать обычной процедуре, чтобы подписать ssh_host_rsa_key.pub
файл?
Заранее спасибо.
Руководства, на которые вы ссылаетесь, говорят о сертификатах OpenSSH, а НЕ о сертификатах x509, подобных тем, которые вы можете получить от GeoTrust. Это совсем разные вещи.
Если вы хотите использовать метод OpenSSH (который мне очень нравится, и я использую его как на работе, так и в частном порядке. Даже facebook использует его: https://code.facebook.com/posts/365787980419535/scalable-and-secure-access-with-ssh/) вы будете использовать обычный закрытый ключ ssh для подписи ключей сервера. При использовании этого метода не используется сертификат CA, только закрытый ключ.
Просто создайте новую пару ключей с помощью ssh-keygen и не забудьте сохранить секретный ключ в секрете. Затем вы можете следовать руководствам, на которые вы ссылаетесь, чтобы подписать свои ключи хоста. Я также написал руководство, которое вы можете найти здесь: https://framkant.org/2016/10/setting-up-a-ssh-certificate-authority-ca/
Когда ключи хоста подписаны, вы можете просто сказать своим клиентам доверять публичной части вашего «ключа подписи», но поместив что-то вроде этого в файл known_hosts:
@cert-authority * ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3pcm4IJGw76YKZSrf7pZA6s3Hu9eRzKbyzKPgg5OkBWU9ztUz2e1bXtR0UDqQKuOUx+ZDx6wmR3rVRM/BhYt1oeAv6rhxNRW2XPiakpn3EzuEWlbp68QRY8p+k6gjy7cnvF2uyaP0R0Ov819tTMHkdS3Rn57m7pfFk+tuRKLjJnQN2g6uxT+PBJonTQr2XcS5oAzwjel1x7xLqmz0MMrE98uE0GaZHxf/hioXOHt1ihzTF+GPqZ31ZrR3GIWtFEKtvcroaiS25VIV9W39LfVh7RRZTh8oCrjcEdoeFKUKA1PpqblsJhqg1XU2/xa9CAKb6SHb7gwQ18nUaQ/Sk6qYJMgkwWUtXbwS1RIm1k5QlKk8VD4H10jyqiAUBC8SHfNxnqOwKe275AfOVc/iuh4F2NsrIuHfh8tno5LqWSP63D3gXpXXm/4j3Sop2NqNz6EIqoqj0HPIL21/SneJgWXS7xxV/ShgnLVGB0dsJf8PsCnsVt0s5thO22VvE/IVQ1KM/ac1lEafBeSZsuPiOfcIeZu9mm4DfuoyqaHmnV6yBguW6zb894IdcYXsrVnMy3Hp85gnymEZn/qfPJ+dhNbBAANgjWphz5ZaBKdrpgCESz8Ka9S6V7fXr2ikB21YiUKB7XuoPjDncOokSEHU0p5iMQjE+Le7K3nOTtokhrZjXw==
Вы заявляете, что у вас есть сертификат CA. Если это верно, значит, у вас есть «Сертификат центра сертификации», также известный как. у вас есть сертификат, позволяющий подписывать другие сертификаты, вы можете.
Если у вас есть сертификат, выпущенный GeoTrust как обычный сертификат SSL, вы не можете использовать его для подписи сертификата сервера SSH. Проверьте свою информацию в GeoTrust, чтобы узнать, какой у вас сертификат.
Если у вас второй случай, рассмотрите этот и этот решение для возможного преобразования сертификатов.
Маловероятно, что в случае 1. Это будет означать, что у вас есть доверенный корневой или промежуточный сертификат, которому доверяют ваши (общедоступные) клиенты (иначе говоря, вы могли бы выполнять работу GeoTrust). Это возможно только в том случае, если вы находитесь в закрытой среде (как внутренняя офисная сеть) и владеете центром сертификации. В своем вопросе вы заявляете, что получили сертификат от GeoTrust, поэтому я предполагаю, что вы подходите ко второму случаю.
Там вам, возможно, придется преобразовать сертификаты, чтобы они имели правильный формат, перейдите по ссылкам, чтобы узнать, решат ли они вашу проблему.
Это должен быть комментарий, но он слишком длинный.
Судя по тому, как вы задаете свой вопрос, кажется, что вы находитесь в начале пути, используя ssh и сертификаты. Да, можно использовать сертификаты x509 с ssh, но это очень эзотерическая конфигурация, и вы здесь не в своей глубине.
Сертификат x509 - это подписанный открытый ключ вместе с предписанными метаданными, представленными в предписанном формате. Вам не нужно его подписывать.
Тогда возникает весь вопрос, используете ли вы сертификаты от клиента вместо пар ключей.
Но какой во всем этом смысл? У вас есть клиенты, которые проверяют метаданные в сертификате, а не сам ключ? Заботиться, чтобы поделиться?