在 Erlang 中使用ssh和public_key应用程序,我发现了一个不错的功能。
我试图通过使用rsa key连接到我正在运行的 Erlang SSH 守护程序,但身份验证失败并且提示我输入密码。
经过一些调试和跟踪(以及几杯咖啡),我意识到,出于某种奇怪的原因,我的用户的无效密钥在那里。authorized_keys文件包含两个密钥。错误的位于文件中的某个位置,而正确的则附加在文件的末尾。
现在,Erlang SSH 应用程序在将提供的密钥与authorized_keys 中包含的密钥进行比较时,它找到了第一个条目(完全忽略了第二个条目——正确的那个)。然后,它切换到不同的身份验证机制(起初它尝试使用dsa而不是rsa,然后提示输入密码)。
问题是:这种行为是有意的,还是应该 SSH 服务器在authorized_keys文件中检查同一用户的多个条目?这是一种通用的 SSH 行为还是仅特定于 Erlang 实现?