我在/root/.ssh/config里面的ssh配置:
Host *
IdentityFile /root/.ssh/id_rsa_api
IdentityFile /root/.ssh/id_rsa_ui
我使用这个键来克隆github repos.但是只有第一个IdentityFile(api)可以工作.对于第二个,它表示在我开始克隆时未找到存储库.当我交换配置像:
Host *
IdentityFile /root/.ssh/id_rsa_ui
IdentityFile /root/.ssh/id_rsa_api
这样我可以克隆UI而不是API.因此,我发现密钥是正确的,但第二个IdentityFile总是被忽略.有什么想法是什么问题?
我不能使用ssh-add,因为我在Dockerfile中配置ssh并且在构建容器时ssh-agent没有运行.
解决方法:
除了您在问题中列出的两个键外,您还有其他任何键吗?在经过多次失败的身份验证尝试后,OpenSSH服务器sshd将丢弃客户端.如果您有足够的密钥,您的客户端可能会尝试所有密钥并在它通过您列出的所有密钥之前被丢弃.使用-v参数运行ssh将显示ssh尝试使用哪些密钥进行身份验证.
sshd_config参数MaxAuthTries确定客户端可以尝试进行身份验证的次数.默认值为6.
如果这是问题,您可以通过设置ssh_config参数IdentitiesOnly来避免它.这可以防止您的客户端使用不是来自ssh配置文件的身份.另一件需要考虑的事情是使用更具体的主机或匹配指令,因此您只需将密钥应用于应使用密钥的特定主机.
标签:git,linux,ssh
来源: https://codeday.me/bug/20190624/1275684.html