web-dev-qa-db-ja.com

SSHとSSL(https)に同じキーを使用するにはどうすればよいですか

小規模なチーム用の開発ツールをインストールしようとしていますが、認証を正しく取得できません。

私たちは分散型チームなので、サーバーはインターネット上にあります。また、SSO + zeroクライアント構成が必要です。

つまり、基本的にhttps + webdavを介したgitは実用的ではありません。gitクライアントは基本認証しか使用できず、パスワードを保存せず、一部のIDEプラグインはパスワードの質問をUIに転送しません。 。

私はsshではなくgitを使用する必要があります。私はgitosisをインストールしましたが、基本的に非対称キーで動作します。私は各開発者に彼らのキーをインストールするように頼む必要があります、私はそれをすることができます、ゼロ設定を忘れます。

次に、開発者にhttps上のWebツール(Wiki、チケットなど)にアクセスしてもらいたいのですが、SSH間で形式が互換性がないため、今回はログイン/パスワードまたは別の秘密鍵を指定する必要がありますそしてSSLとそれをOSに保存する場所は同じではありません。さて、私はSSOを忘れなければなりませんか?

私は間違っていますか?

12
nraynaud

TL; DRサマリー: SSL/X.509証明書+キーがある場合は、秘密キーファイルをsshに指定します。 Orid_rsaにSSHキーが既にある場合は、CSRに署名するときにOpenSSLで使用するだけです。 それだけです


joeuser.pemにユーザーのSSL証明書があり、joeuser.keyにその秘密鍵があるとします。

X.509は標準のRSA鍵を使用し、SSHも使用するため、SSHクライアントにjoeuser.keyを使用するように指示できるはずです。唯一の要件は、それが理解可能な形式であることです。

joeuser.keyの内部を見て、次のようになっているかどうかを確認します。

----- BEGIN RSA PRIVATE KEY ----- 
 MGECAQACEQCxQaFwijLYlXTOlwqnSW9PAgMBAAECEETwgqpzhX0IVhUa0OK0tgkC 
 CQDXPo7HDY3axQLIQUQIQIQAQIQIQQAQIQIQGQIQIQGQIQIQIQGQIQGQIQIQIQGQIQGQIQGQIQGQIQGQQQGQGQAQGQAQGQAQGQQQGQGQAQG ---

オープンSSL、この形式は "PEM"(-outform pemなど)と呼ばれ、デフォルトで使用されます。 Openでも同じ形式が使用されますSSH、およびssh -i joeuser.keyを使用して接続できます。

publicキーをOpenSSH id_rsa.pub形式で抽出できます(authorized_keysに入れる場合):

ssh-keygen -y -f joeuser.key> joeuser-ssh.pub

(PEM形式の同じ公開鍵はopenssl rsa -puboutで抽出できますが、ほとんど役に立ちません。)


DSAキーがある場合、それはRSAとまったく同じように機能します

11
user1686

OpenSSHは、ここでx509証明書を試験的にサポートしています。

http://roumenpetrov.info/openssh

ユーザーごとに1つのx509証明書を発行し、両方に使用できます。

ユーザーpubkeyをauthorized_keysに入れる代わりに、ユーザー証明書の許可されたDNを指定できます。また、DNがユーザー名に変換されるように、webserver/webアプリケーションを構成する必要があります。

5
b0fh

SSHキーとSSL証明書は別の動物であり、私が知る限り、それらは交換可能ではありません。

あなたの最善の策は、おそらくシングルサインオン/共有パスワードストア/ Webツールのために何でも設定し、git/gitosisを認証アイランドのままにすることです。

1
voretaq7