linux - IdentityFile 在 ssh 配置中被忽略

标签 linux git ssh

我的 ssh 配置在 /root/.ssh/config 中:

Host *
  IdentityFile /root/.ssh/id_rsa_api
  IdentityFile /root/.ssh/id_rsa_ui

我使用这些 key 能够克隆 GitHub 存储库。但是,只有第一个 IdentityFile (API) 有效。第二,当我开始克隆时,它说 Repository not found。当我像这样交换配置时:

Host *
  IdentityFile /root/.ssh/id_rsa_ui
  IdentityFile /root/.ssh/id_rsa_api

这样我可以克隆 UI,但不能克隆 API。结果,我看到 key 是正确的,但第二个 IdentityFile 总是被忽略。可能是什么问题?

我无法使用 ssh-add,因为我在 Dockerfile 中配置了 ssh,并且在构建容器时 ssh-agent 没有运行。

最佳答案

除了您在问题中列出的两个键之外,您还有其他键吗? OpenSSH 服务器 sshd 将在多次失败的身份验证尝试后丢弃客户端。如果您有足够的 key ,您的客户端可能会尝试所有这些 key 并在通过您列出的所有 key 之前被丢弃。使用 -v 参数运行 ssh 将显示 ssh 尝试使用哪些 key 进行身份验证。

sshd_config参数 MaxAuthTries 确定客户端可以尝试验证的次数。默认值为 6。

如果这是问题所在,您可以通过设置 ssh_config 来避免它。参数 IdentitiesOnly。这可以防止您的客户端使用不是来自 ssh 配置文件的身份。另一件需要考虑的事情是使用更具体的 HostMatch 指令,因此您只将 key 应用于应该使用 key 的特定主机。

关于linux - IdentityFile 在 ssh 配置中被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28283131/

相关文章:

javascript - 为什么在 Firefox 中不加载图像 anchor 链接?

python - kinit 使用 Python 子进程

c - recv 调用缓慢的原因

linux - 在 Linux 上自动更新 AIR 应用程序而不提示输入 sudo 密码

c - 从文件指针获取旧数据(生产者和消费者问题)

linux - 向两个用户(我的 apache 服务器和我自己)添加权限

git - 如何将多个命令传递给 Git BASH

git - 如何配置 Araxis Merge 以与 Visual Studio Git 一起使用?

ssh - gitHub 如何仅使用 ssh key 限制访问?

linux - scp 到远程主机而不在该主机上执行 bash_profile 文件