3

在 Erlang 中使用sshpublic_key应用程序,我发现了一个不错的功能

我试图通过使用rsa key连接到我正在运行的 Erlang SSH 守护程序,但身份验证失败并且提示我输入密码。

经过一些调试和跟踪(以及几杯咖啡),我意识到,出于某种奇怪的原因,我的用户的无效密钥在那里。authorized_keys文件包含两个密钥。错误的位于文件中的某个位置,而正确的则附加在文件的末尾。

现在,Erlang SSH 应用程序在将提供的密钥与authorized_keys 中包含的密钥进行比较时,它找到了第一个条目(完全忽略了第二个条目——正确的那个)。然后,它切换到不同的身份验证机制(起初它尝试使用dsa而不是rsa,然后提示输入密码)。

问题是:这种行为是有意的,还是应该 SSH 服务器在authorized_keys文件中检查同一用户的多个条目?这是一种通用的 SSH 行为还是仅特定于 Erlang 实现?

4

1 回答 1

3

是的,它是“第一次失败”身份验证,我多次遇到您的问题。就实现而言,向我解释说,恶魔迭代了 authorised_keys 文件以寻找匹配的登录名,然后检查了密钥。

这似乎是标准实现,

于 2010-03-15T01:50:34.443 回答