
从零开始掌握Reddit获取API密钥与数据分析
在GitHub平台上,生成和管理API密钥对于保护应用程序的安全性至关重要。本文详细介绍了如何在GitHub中创建和管理API密钥,确保您的应用程序能够安全地进行身份验证和授权操作。通过学习如何生成私钥、验证密钥的有效性以及安全存储密钥,开发者可以有效地保护其GitHub应用的敏感信息。本文还探讨了如何使用个人访问令牌代替密码进行身份验证,以及如何确保这些密钥的安全性。
GitHub Apps私钥是用于向GitHub API进行身份验证的重要工具。其目的是通过签署JSON Web令牌(JWT)来请求安装访问令牌,确保应用程序可以安全地与GitHub进行交互。
每个GitHub应用最多可以创建25个私钥。这种限制使得在密钥泄露的情况下可以进行密钥轮换而不会影响应用的正常运行。
值得注意的是,GitHub Apps私钥不会自动过期,必须手动撤销。撤销或删除私钥的具体步骤将在后续部分详细介绍。
在GitHub的任意页面,点击右上角的个人资料照片,然后导航到账户设置。对于个人账户拥有的应用,进入“设置”;对于组织拥有的应用,进入“你的组织”并选择“设置”。
在“开发人员设置”下,选择“GitHub Apps”,然后找到需要生成私钥的应用,点击“编辑”。在“私钥”下,点击“生成私钥”按钮。生成的私钥将以PEM格式下载到本地计算机。
下载的PEM文件格式是PKCS#1 RSAPrivateKey
。确保将此文件妥善保存,因为GitHub仅存储密钥的公共部分。详细的存储建议将在后续部分提供。
GitHub使用SHA-256哈希函数为每对私钥和公钥生成指纹。可以通过生成私钥指纹与GitHub上显示的公钥指纹进行比较,以验证两者是否匹配。
使用以下命令在本地生成私钥指纹:
openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
将本地生成的指纹结果与GitHub中显示的指纹进行比较,以确保私钥和公钥是匹配的。
在GitHub的任意页面,点击个人资料照片,进入账户设置,然后选择“开发人员设置”。在“GitHub Apps”下,找到需要删除私钥的应用。
在“私钥”下,找到需要删除的私钥,点击“删除”按钮。确认删除操作以完成私钥的删除。
在删除现有密钥之前,确保已经生成了一个新的密钥,以免影响应用的正常运行。
考虑将密钥存储在如Azure Key Vault这样的密钥保管库中,并设置为仅签名。这有助于防止私钥的丢失。
可以将密钥存储为环境变量,但这种方法不如密钥保管库安全。如果攻击者获得对环境的访问权限,他们可能会读取私钥。
即使代码存储在专用存储库中,也不应在应用中对私钥进行硬编码。遵循最佳实践以确保私钥的安全。
这种令牌比classic令牌更安全。每个令牌只能访问特定资源,并且具有更细粒度的权限控制。
这种令牌不如fine-grained令牌安全,但某些功能仍然需要使用这种令牌。
所有个人访问令牌都与生成它们的用户相关联,并且如果用户失去对资源的访问权限,令牌将变为非活动状态。
在命令行中使用GitHub CLI或Git凭据管理器,而不是创建personal access token,以提高安全性。
在脚本中使用personal access token时,考虑将令牌存储为机密,并通过GitHub Actions运行脚本。
GitHub会自动删除一年内未使用过的personal access token。建议为令牌设置过期时间以提高安全性。
openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
。