Github: используйте ключ ssh для использования только в одном хранилище или организации - PullRequest
0 голосов
/ 10 мая 2019

Можно создать ключ SSH, у которого есть доступ только к одному репозиторию или одной организации, и все остальные будут отклонены?

Например, у вас есть доступ к этим 4 хранилищам:

git@github.com:MyUser/repo-u1.git
git@github.com:MyUser/repo-u2.git
git@github.com:OrgRepo/repo-o1.git
git@github.com:OrgRepo/repo-o2.git

Первый случай:

Вы создаете ssh-ключ, который имеет доступ только к OrgRepo. Таким образом, если ключ украден и взломан, хакер может иметь доступ только к OrgRepo/repo-o1.git и OrgRepo/repo-o2.git, но если он попытается клонировать, MyUser/repo-u1.git или MyUser/repo-u1.git будут отклонены.

Второй случай:

Вы создаете ssh-ключ, который имеет доступ только к MyUser/repo-u2.git. Таким образом, если ключ украден и взломан, хакер может получить доступ только к MyUser/repo-u2.git, но будет отклонен для остальных 3 репозиториев.

1 Ответ

2 голосов
/ 10 мая 2019

GitHub не обеспечивает именно то, что вы хотите, но он предоставляет некоторые аналогичные функции.

Во-первых, если ваша организация использует единый вход в SAML, тогда для SSO должен быть явно включен ключ SSH, прежде чем он сможет получить доступ к репозиториям для этой организации. Точно так же токены личного доступа должны быть включены и для единого входа. Для обратного не предусмотрено никаких функций, которые не позволяют учетным данным с поддержкой организации получать доступ к личным ресурсам.

Во-вторых, если у вас есть автоматизированная система, такая как сервер CI, которой требуется доступ только к одному репозиторию, вы можете создать ключ развертывания SSH для доступа только к этому репозиторию. Это не очень хороший инструмент для людей, потому что ему не хватает прослеживаемости, но это хороший инструмент для автоматизированных систем.

Кроме того, нет, GitHub не предоставляет то, что вы ищете.

...