从另一个stackoverflow上的帖子中,推荐了以下内容。有没有一种方法可以避免使用明文,或者提供一个现有的admin 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))`发布于 2015-01-27 23:41:40
因此,需要明确的是,当使用GitHub的API进行通信时,您的通信是通过HTTPS进行保护的。github3.py使用请求来执行证书验证并适当地保护连接。这就是说,当我们使用基本身份验证进行身份验证时,您将在base64编码之后在标头中发送凭据(这不是加密的,如果它以某种方式被拦截,则不安全)。
所以说真的,你需要考虑一下你担心谁会“看到”你的证书。如果你担心你的公司在本地运行一个代理,这意味着干预你的连接并窃取你的凭证,这是有限令牌的一个很好的用途。您可以通过API或web用户界面创建令牌。无论采用哪种方法,您都可以(而不是使用现有的代码)执行以下操作:
g = login(token='myspecialtoken')然后你就会用同样的方法做其他的事情。我还没有检查您是否可以使用令牌为用户创建ssh密钥,但是如果它不起作用,您将得到一个关于需要使用基本身份验证(用户名和密码)的错误。
不过,我仍然想强调,使用您的登录凭据应该是可以的。以任意攻击者的身份拦截和检索凭据的难度很高。如果你担心的是不同的情况,你绝对应该更仔细地研究威胁级别。
发布于 2016-10-23 09:44:07
您可以使用环境变量
即
gh_login = os.environ.get('GITHUB_LOGIN')
gh_pass = os.environ.get('GITHUB_PASS')然后将它们传递给login
https://stackoverflow.com/questions/28160843
复制相似问题