Github supports the creation of per-project Deploy Keys, which are just ssh public+private keys. Jenkins can use these with Multibranch Pipeline project with the "Git" Branch Source.
However this setup does not work with Github webhooks, provided by the Github plugin, (`/github-webhook/` url) as the Github plugin requires username+password credentials to work.
There should be a way to configure a Multibranch Pipeline project to accept Github webhooks with only having a per-project ssh keys (Github Deploy Key).
Current known workarounds: Don't use webhooks and simply configure the project to pull for SCM changes every minute.