从 GitHub 和 GitLab 下载 ssh public 密钥 *使用注释字段*

Download ssh public keys from GitHub and GitLab *with the comment field*

在 GitHub 和 GitLab 上,您可以通过向 URL https://server/username.keys 发出简单的 GET 请求来下载用户的 SSH public 密钥, 例如:

curl https://github.com/unclebob.keys

这给出:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArmmGWKZ8UAO6myYW94liK4oMNBen6Sl7r0QAb6Et0y1kwCIBeBrHZhsSFQBzw0H517FeML9d+fBMSShZloMvw5x8nLQq5kbi4+8JXC4+CwW505fipjFY4ABj60BZioZn4Hndf8bwmCwXDHVtjfUeBD8b+Sjn7VNQ123rd1t5TLYDShk+2I4ldDhxbkFRqBF1gz3is4BsngdsHQp5AuuFWmiD2FRDRZDACdUyL8fUIP6O/3TAGFNKP2CG6//8+XHbQOYUaJ9RkSAJ453dx2PwDdiIXJyIJRO/q8wqWyRhA94XtJ77zP9BMyrRVnMClYcQoc9WBBlocp519l9vsp6jyQ==  
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoQ9S7V+CufAgwoehnf2TqsJ9LTsu8pUA3FgpS2mdVwcMcTs++8P5sQcXHLtDmNLpWN4k7NQgxaY1oXy5e25x/4VhXaJXWEt3luSw+Phv/PB2+aGLvqCUirsLTAD2r7ieMhd/pcVf/HlhNUQgnO1mupdbDyqZoGD/uCcJiYav8i/V7nJWJouHA8yq31XS2yqXp9m3VC7UZZHzUsVJA9Us5YqF0hKYeaGruIHR2bwoDF9ZFMss5t6/pzxMljU/ccYwvvRDdI7WX4o4+zLuZ6RWvsU6LGbbb0pQdB72tlV41fSefwFsk4JRdKbyV3Xjf25pV4IXOTcqhy+4JTB/jXxrF

不幸的是,请注意末尾没有评论字段。 在 GitHub 和 GitLab 系统中有评论字段,您可以在您的个人资料中查看和编辑,以便轻松区分您的多个密钥。 但是当使用这种方法访问时,由于某种原因,GitHub 和 GitLab 都删除了评论字段。

有没有简单的方法从这些服务中获取 public 密钥?我知道 REST API,但据我所知,它们 return JSON,如果我想简单地重定向 curl 的输出以追加,这就不太方便了到 authorized_keys 文件。如果我必须解析 JSON,这会增加我想要避免的脚本的复杂性。

这似乎是一个安全问题,如果评论内容被返回 (since you can set any comment in there),评论内容可能会泄露一些可能敏感的数据。

这就是为什么 very specification of that "get keys" feature in GitLab does include:

  it "should not render the comment of the key" do
        get :get_keys, username: user.username

        expect(response.body).not_to match(/dummy@gitlab.com/)
      end