0

从另一个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))`
4

2 回答 2

0

需要明确的是,在与 GitHub 的 API 通信时,您的通信是通过 HTTPS 保护的。github3.py 使用请求来执行证书验证并正确保护连接。也就是说,当我们使用基本身份验证进行身份验证时,您将在 base 64 编码之后在标头中发送您的凭据(这不是加密,如果以某种方式被截获则不安全)。

所以真的,你需要考虑你担心谁“看到”你的凭据。如果您担心您的公司在本地运行代理,该代理旨在中间人连接并窃取您的凭据,这对于有限令牌很有用。您可以通过 API 或 Web UI 创建令牌。无论哪种方式,您都将(而不是使用您拥有的代码)执行以下操作:

g = login(token='myspecialtoken')

然后你会以同样的方式做其他所有事情。我没有检查您是否可以使用令牌为用户创建 ssh 密钥,但如果它不起作用,您将收到关于需要使用基本身份验证(您的用户名和密码)的错误。

不过,我仍然想强调,使用您的登录凭据应该没问题。作为任意攻击者,拦截并检索您的凭据的难度很高。如果您担心不同的情况,您绝对应该更仔细地查看威胁级别。

于 2015-01-27T15:41:39.587 回答
0

您可以使用环境变量

IE

gh_login = os.environ.get('GITHUB_LOGIN')
gh_pass = os.environ.get('GITHUB_PASS')

然后将这些传入login

于 2016-10-23T01:44:06.947 回答