从另一个stackoverflow上的帖子中,建议使用以下内容。 有没有办法避免使用明文,可能会提供现有的管理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))`
答案 0 :(得分:0)
所以要明确的是,在与GitHub的API通信时,您的通信是通过HTTPS保护的。 github3.py使用执行证书验证的请求并正确保护连接。这就是说,当我们使用基本身份验证进行身份验证时,您需要在base 64编码之后在头文件中发送您的凭据(这不是加密,如果以某种方式拦截则不安全。)
所以真的,你需要考虑一下你是谁在担心"看到"你的凭据。如果您担心您的公司在本地运行代理服务器意味着您的连接中断,并窃取您的凭据,这对于有限的令牌非常有用。您可以通过API或Web UI创建令牌。无论哪种方式,您都可以(而不是使用您拥有的代码)执行以下操作:
g = login(token='myspecialtoken')
然后你会以同样的方式做其他事情。我还没有检查过你是否可以使用令牌为用户创建ssh密钥,但是如果它不能正常工作,则会收到有关需要使用基本身份验证(您的用户名和密码)的错误。
但我仍然想强调,使用您的登录凭据应该没问题。拦截该攻击并将您的凭据作为任意攻击者检索的难度很高。如果你担心不同的情况,你一定要仔细查看威胁级别。
答案 1 :(得分:0)
您可以使用环境变量
即
gh_login = os.environ.get('GITHUB_LOGIN')
gh_pass = os.environ.get('GITHUB_PASS')
然后将这些传递到login