2015-12-15 2 views
1

На обоих GitHub и GitLab, вы можете загрузить открытые ключи SSH пользователя с помощью простого GET запроса в URL https://server/username.keys, , например:Скачать SSH-ключи от GitHub и GitLab * с полем комментария *

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

Это дает:

SSH-RSA AAAAB3NzaC1yc2EAAAABIwAAAQEArmmGWKZ8UAO6myYW94liK4oMNBen6Sl7r0QAb6Et0y1kwCIBeBrHZhsSFQBzw0H517FeML9d + fBMSShZloMvw5x8nLQq5kbi4 + 8JXC4 + CwW505fipjFY4ABj60BZioZn4Hndf8bwmCwXDHVtjfUeBD8b + Sjn7VNQ123rd1t5TLYDShk + 2I4ldDhxbkFRqBF1gz 3is4BsngdsHQp5AuuFWmiD2FRDRZDACdUyL8fUIP6O/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, по какой-либо причине выкидывают поле комментария.

Есть ли простой способ получить открытые ключи от этих услуг? Я знаю API REST, но насколько я знаю, они возвращают JSON, что не так удобно, например, если я хочу просто перенаправить вывод curl, чтобы добавить файл authorized_keys. Если мне нужно разобрать JSON, это добавит больше сложности для моих сценариев, которые я бы хотел избежать.

ответ

1

Это проблема с безопасностью, при которой содержимое комментария может утечка некоторых, возможно, конфиденциальных данных, если они были возвращены (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(/[email protected]/) 
     end 
+0

@janos кстати: http://meta.stackexchange.com/a/722/6309 (? У меня 819, сколько у вас есть) – VonC

+0

121 из из 679 принято = 17,82%. По сравнению с вашим, 819 из 7013 принято = 11.67% – janos

+0

@janos Спасибо Santa – VonC

Смежные вопросы