web-dev-qa-db-ja.com

sshエージェントに相当するSSLはありますか?

これが私の状況です:リモートソースからRuby gemsとpython eggsをインストールできるようにするためにすべての人がアクセスできる必要がある開発者がたくさんいます。現在、ファイアウォールの内側にgemとeggをホストするサーバーがあります。そのサーバーでホストされているものをファイアウォールの外側にインストールできるようにする必要があります。ホストするgemとeggの一部は独自仕様であるため、開発者にとってできるだけ目立たないように、そのマシンへのアクセスをいくらかロックダウンしたい。

私の最初の考えは、sshキーのようなものを使用することでした。そこで、SSL相互認証を検討しました。 curlでテストして、すべてを正しくセットアップして機能させることができましたが、残念なことに、curlに追加の引数を渡して、証明書、キー、および認証局を認識させる必要がありました。

証明書とキーを開発者のマシンにプッシュして、開発者がログインしたりキーを提供したりする必要がないように、その情報を自動的に提供するように設定できるsshエージェントのようなものがあるかどうか疑問に思いました。何かをインストールしてみてください。

私が避けたいもう1つのことは、「gem」コマンドと「pip」コマンドを変更して、http接続を行うときにキーを提供する必要があることです。

この問題を解決する可能性のある他の提案(ssl相互認証とは関係ありません)も歓迎します。

編集:私はこれを研究し続けていて、 stunnel に出くわしました。私thinkこれは私が探しているものかもしれません、stunnelに関するフィードバックも素晴らしいでしょう!

4

結局、まったく違うアプローチをとることになりました。 NginxとSSLおよびBasicAuthを使用して、ファイアウォールの外側にサーバーをセットアップしました。これは非常にうまくいっています。

0

HPCとグリッドのグリッドセキュリティインフラストラクチャに少し固有です(APIは公開されて利用可能です)。 MyProxyを使用すると、ユーザーはRFC3820プロキシ資格情報を取得できます。基本的に、元の証明書の資格情報がMyProxyによって検証された後、プロキシ証明書(短命)を取得します。 curlshouldはRFC3820証明書で動作します。 GSIを使用できるSSHも利用できます。 MyProxy --X.509資格情報マネージャー を参照してください。

2
pfo

IPSECを使用して、必要なサービスの信頼できるトンネルをセットアップしてみませんか。最初にセットアップして構成するのは少し手間がかかりますが、その後は透過的にすることができます。

SSHを使用しても同じことが言えます(セッションを長時間持続させます)。これは、SSHセッションの開始時に1回必要なパスワードを使用して実行できます。問題がない場合は、パスワードなしで非対称キーを使用することを選択できます。 SSHを使用している場合は、リモートサーバーに到達するためにクライアントでローカル転送ポートにアクセスする必要があるため、名前を正しく機能させるには、構成の変更またはDNSの調整を行う必要があります。

1
Ram

(使用しているプラ​​ットフォームを言っているのではありません。)

OSXでは、キーチェーンがこれを処理できます。 ssh-agentとはまったく同じではありませんが、特定のアプリケーションによる秘密鍵へのアクセスを許可するように構成できます(選択した設定に応じて、プロンプトの有無にかかわらず)。

Linuxでは、同様の目的を持つ Gnome Keyring を使用できます。アプリケーションごとに異なる権限を付与するという点で、OSXのキーチェーンと同じ粒度を提供するかどうかはわかりませんが、ログイン時にロックを解除することもできます。

1
Bruno