Я разрабатываю оболочку Bitbucket API на JavaScript. Я пытаюсь написать тесты для метода, который добавляет ключ SSH. Моя наивная попытка создать правдоподобный ключ SSH не увенчалась успехом. Вот как я сгенерировал фиктивный ключ:
- начните с "ssh-rsa"
- добавить представление в кодировке Base64 строки из 279 случайных символов
- добавить " "
- добавить 16-символьную строку случайных символов
- добавить "@"
- добавить 16-символьную строку случайных символов
- добавить ".com"
Bitbucket возвращает 400 Bad Request, когда я ОТПРАВЛЯЮ SSH-ключ, сгенерированный в таким образом. К счастью, у меня есть доступ к исходному коду Bitbucket, так что я смог копнуть немного глубже. Bitbucket проверяет ключи 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 [email protected]
failed
/Users/dc/Desktop/dummy_rsa.pub is not a public key file.
Чтобы было ясно, мне не нужно генерировать «действительный» ключ SSH, мне просто нужно иметь возможность тестировать различные конечные точки API. Кроме того, поскольку тесты выполняются в браузере, я не могу раскошелиться на создание ключа.