首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中生成格式良好的SSH密钥

在JavaScript中生成格式良好的SSH密钥
EN

Stack Overflow用户
提问于 2011-11-12 09:36:25
回答 2查看 4.3K关注 0票数 1

我正在开发Bitbucket API包装器 in JavaScript。我试图为添加SSH键的方法编写测试。我天真地试图创建一个可信的SSH密钥,但没有成功。下面是我如何生成一个虚拟密钥:

  1. 从"ssh-rsa“开始
  2. 附加279个随机字符字符串的Base64 64编码表示形式
  3. 附加“”
  4. 附加16个随机字符字符串
  5. 附加"@“
  6. 附加16个随机字符字符串
  7. 附加".com“

当我以这种方式生成发送SSH密钥时,Bitbucket返回400个坏请求。幸运的是,我可以访问Bitbucket的源代码,因此我能够深入挖掘。Bitbucket通过ssh-keygen运行SSH密钥来验证SSH密钥。

我不明白SSH密钥是如何生成的,所以我可能会问一个愚蠢的问题。是否有可能生成一个具有足够说服力的SSH密钥来欺骗ssh-keygen?这是输出:

代码语言:javascript
复制
$ 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端点。而且,由于测试在浏览器中运行,所以我无法生成密钥。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-12 09:51:03

SSH键不仅仅是随机字符串的字符,这就是它们不通过验证的原因。

这个名为Javascript密码学工具包的库这里可以帮助您生成RSA密钥(由SSH使用)。

他们有一个生成密钥的演示:https://github.com/ats4u/titaniumcore/blob/master/crypto/RSA.sample1.html

从演示页面的源代码中可以看出,工具箱很重,但是如果这是您所需要的,那么我想这就是您必须使用的。当然,将密钥生成卸载到服务器上要简单得多,但是如果您只编写客户端库,则必须坚持这样做。

2019年更新:更新了指向github的链接。

票数 9
EN

Stack Overflow用户

发布于 2011-11-12 10:00:20

如果最后对现有的轻量级Ruby应用程序进行AJAX调用以生成和检索SSH密钥,则可以使用sshkey来实现https://rubygems.org/gems/sshkey

这并不回答如何在纯JavaScript中这样做,而是提供了一种基于特定应用程序体系结构的替代方法(请参阅下面的注释)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8103654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档