В примечаниях к версии Git 2.2.0, он описывает новую опцию git push
, --signed
:Зачем нужно подписывать Git?
"git push" learned "--signed" push, that allows a push (i.e.
request to update the refs on the other side to point at a new
history, together with the transmission of necessary objects) to be
signed, so that it can be verified and audited, using the GPG
signature of the person who pushed, that the tips of branches at a
public repository really point the commits the pusher wanted to,
without having to "trust" the server.
Так это звучит, как данные отправляются на сервер во время толчка подписан так, что сервер может проверить и журнал, который сделал толчок. В man
pages Вы можете подтвердить это:
--signed
GPG-sign the push request to update refs on the receiving side,
to allow it to be checked by the hooks and/or be logged. See
git-receive-pack[1] for the details on the receiving end.
Вы смотрите в man
pages for git-receive-pack
под pre-receive
и post-recieve
крючков, чтобы увидеть, как проверить подписанный толчок.
Кажется, что все это помогает серверу проверить, кто именно делает то, что они говорят.
Как git push --signed
поможет вам (толкателю) не «доверять» серверу? Все, что я видел до сих пор, похоже, указывает, что это помогает серверу доверять вам. Что еще более важно, Почему подписываются коммиты и подписанные теги, которых недостаточно, чтобы нажать на ненадежный сервер? Почему нам даже нужны подписные подталкивания?