Избегая простого ввода пароля для входа в систему для github3.py
Из публикации о другом стеке потока было рекомендовано следующее. Есть ли способ избежать использования открытого текста, возможно, вместо этого предоставить существующий ключ администратора SSH?
from github3 import login
g = login('abcd', password)
with open('~/.ssh/temp.k.pub', 'r') as fd:
key = g.create_key('abcd', fd)
print("Created {0}".format(key.title))`
2 ответа
Вы можете использовать переменные среды
т.е.
gh_login = os.environ.get('GITHUB_LOGIN')
gh_pass = os.environ.get('GITHUB_PASS')
Затем передайте это в login
Итак, чтобы быть ясным, при общении с API GitHub ваше общение защищено через HTTPS. github3.py использует запросы, которые выполняют проверку сертификата и должным образом защищают соединение. Тем не менее, когда мы проводим аутентификацию с использованием обычной аутентификации, вы отправляете свои учетные данные в заголовках после кодировки Base 64 (которая не является шифрованием и не является безопасной, если она каким-либо образом перехвачена).
Так что, на самом деле, вам нужно подумать о том, кого вы беспокоите, "увидев" свои учетные данные. Если вы беспокоитесь о том, что ваша компания использует локальный прокси-сервер, который предназначен для посредничества в вашем соединении и кражи учетных данных, то это хороший способ использовать ограниченный токен. Вы можете создать токен через API или через веб-интерфейс. В любом случае, вы бы (вместо использования имеющегося кода) сделали следующее:
g = login(token='myspecialtoken')
Тогда вы будете делать все остальное таким же образом. Я не проверял, можете ли вы создать ssh-ключи для пользователя с помощью токена, но если он не сработает, вы получите сообщение об ошибке при использовании базовой аутентификации (ваше имя пользователя и пароль).
Я все же хочу подчеркнуть, что использование ваших учетных данных должно быть хорошо. Сложно перехватить это и получить ваши учетные данные как произвольного злоумышленника. Если вы беспокоитесь о другой ситуации, вам определенно стоит присмотреться к уровню угрозы.