2016-03-18 4 views
1

私はMercurialリポジトリ(SSH経由)にアクセスするためにユーザーが公開SSHキーをアップロードできる小さなサービスを構築しています。私は何でも、ユーザーがあるペーストいることを確認したいと思います:潜在的な公開SSH鍵の部分を検証するにはどうすればよいですか?

  • 有効
  • ない彼らの鍵ペア<のプライベート部分(ssh-keygen -l -f pasted_key_put_in_a_file終了コードが0である)---これは私が探しているものですコマンドを実行するために

私が理解しているところでは、ssh-keygen -l -f ...は、検査されたキーパーツが公開パーツかプライベートパーツかを言っていません。

ファイルがではないことを確認する方法はありますか?はキーペアのプライベート部分を含んでいますか?

+2

これは証明書に関するのにもかかわらず、これは実際には、公開鍵がどのようなものかを知っているプログラミングの問題(スクリプト/正規表現/パターンマッチング)のように見えます。 ---- BEGIN SSH2 PUBLIC KEY ---- 'パディング? – schroeder

+0

私はよく分かりません - 'ssh-keygen'ツールのセキュリティやプログラミング知識の詳細を知っていますか? –

+0

あなたの質問は 'ssh-keygen'の使用に制約されましたか? – schroeder

答えて

1

ssh-keygen -l -f private_keyは、private_keyと同じディレクトリに一致するpublic_keyを探し、見つかった場合に使用します。しかし、一致する公開鍵部分(名前で)がない場合、private_fileが試行され、プログラムが苦情を申し立てます。だから私が使うことができないと思ったコマンドは、(名前のついたファイルの隣にあるファイルに公開鍵の部分がない限り)実際に使用することができます。

+1

ファイルに任意のデータを書き込んでから、その上で 'ssh-keygen'を実行する前に、妥当性をチェックするための他の手段を追加したいかもしれません。ここでの懸念事項は、ハードドライブの空き領域を埋める攻撃です。 – SmokeDispenser

+0

はい。この場合ではありません。 –

関連する問題