JavaScriptでBitbucketAPIラッパーを開発しています。SSHキーを追加するメソッドのテストを作成しようとしています。信頼できるSSHキーを作成するという私の素朴な試みは失敗しました。ダミーキーを生成した方法は次のとおりです。
- 「ssh-rsa」で始まります
- ランダムな文字の279文字の文字列のBase64エンコード表現を追加します
- 追加""
- ランダムな文字の16文字の文字列を追加します
- 「@」を追加
- ランダムな文字の16文字の文字列を追加します
- 「.com」を追加
この方法で生成されたSSHキーをPOSTすると、Bitbucketは400BadRequestを返します。幸い、Bitbucketのソースコードにアクセスできるので、もう少し深く掘り下げることができました。Bitbucketは、SSHキーを実行してSSHキーを検証しますssh-keygen
。
SSHキーがどのように生成されるのかわからないので、ばかげた質問をしているかもしれません。だまされるほど説得力のあるSSHキーを生成することは可能ssh-keygen
ですか?出力は次のとおりです。
$ ssh-keygen -l -f ~/Desktop/dummy_rsa.pub
buffer_get_string_ret: bad string length 1903654498
key_from_blob: can't read key type
key_read: key_from_blob cXd2YnRzZXpha3Rld2V4YmdieWdoeWl2aXpla3hkaHBodnlteHl2ZHl0bnloYmRyYWZrdnVxaWR3cHBydnFmZWFkaHp0aGRwYml6ZXVxY3ZlZ3NiZ29lanl0cG9vZmlnZ2dyZmJ3aWxsdXJhb2puYWRjY3F0YW5rcGV3Z3dkc3lxd2tkb3d6emFzbXpubXJ1eGN2bm53a3l6bmRjenV1dnplbnFtZ3Z5bm96ZGZhandwcG9mcHVoaWFkZ25ud3VkdnB0enV6Zm51bWVxanhzanlwa2ZodGxpd2xld2pnY3dhbmJ6aXVyamp6c29rbm54dHp2enJmeWhnY2ZrcWlqemFscGNnbWJsY3lpcmRtYXFkbHB6c3l0 duvrnzsladfrmccr@xqrbenpfryhoklgw.com
failed
/Users/dc/Desktop/dummy_rsa.pub is not a public key file.
明確にするために、「有効な」SSHキーを生成する必要はありません。さまざまなAPIエンドポイントをテストできる必要があります。また、テストはブラウザーで実行されるため、キーを生成するためにシェルアウトすることはできません。