我ssh
里面的配置/root/.ssh/config
:
Host *
IdentityFile /root/.ssh/id_rsa_api
IdentityFile /root/.ssh/id_rsa_ui
Run Code Online (Sandbox Code Playgroud)
我使用这些密钥来克隆 GitHub 存储库。但是,只有第一个IdentityFile
(API)有效。对于第二个,Repository not found
当我开始克隆时它说。当我交换配置时,例如:
Host *
IdentityFile /root/.ssh/id_rsa_ui
IdentityFile /root/.ssh/id_rsa_api
Run Code Online (Sandbox Code Playgroud)
这样我就可以克隆 UI,但不能克隆 API。结果,我看到密钥是正确的,但第二个 IdentityFile 始终被忽略。问题可能是什么?
我无法使用ssh-add,因为我ssh
在 Dockerfile 内进行配置,并且在构建容器时 ssh-agent 未运行。
除了问题中列出的两个密钥之外,您还有其他密钥吗?OpenSSH 服务器sshd
将在多次失败的身份验证尝试后删除客户端。如果您有足够的密钥,您的客户端可能会尝试所有这些密钥,并在通过您列出的所有密钥之前被删除。ssh
使用该参数运行-v
将显示 ssh 尝试使用哪些密钥进行身份验证。
sshd_config参数确定客户端可以尝试进行身份验证的MaxAuthTries
次数。默认值为 6。
如果这是问题所在,您可以通过设置ssh_config参数来避免它IdentitiesOnly
。这可以防止您的客户端使用并非来自 ssh 配置文件的身份。另一件需要考虑的事情是使用更具体的Host
或Match
指令,因此您只需将密钥应用于应使用该密钥的特定主机。
https://developer.github.com/guides/managing-deploy-keys/#deploy-keys
部署密钥仅授予对单个存储库的访问权限。更复杂的项目可能有许多存储库要拉到同一服务器
所以我放弃使用部署密钥。相反,我创建了一个 ssh 密钥,允许访问我的所有私人存储库。这样我就有了一个 IdentityFile。
归档时间: |
|
查看次数: |
3444 次 |
最近记录: |