Erlang, SSH and authorized_keys

3
在Erlang中使用sshpublic_key应用程序时,我发现了一个非常好的特性
我试图使用rsa密钥连接到正在运行的Erlang SSH守护程序,但是认证失败并提示输入密码。
经过一些调试和跟踪(以及几杯咖啡),我意识到,由于某种奇怪的原因,我的用户有一个无效的密钥。 authorized_keys文件包含两个密钥。错误的密钥在文件的某个地方,而正确的密钥则附加在文件的末尾。
现在,当Erlang SSH应用程序将提供的密钥与包含在authorized_keys中的密钥进行比较时,它会找到第一个条目(完全忽略第二个 - 正确的密钥)。然后,它会切换到不同的身份验证机制(首先尝试dsa而不是rsa,然后提示输入密码)。 问题是:这种行为是否是有意的,或者SSH服务器应该检查authorized_keys文件中同一用户的多个条目?这是通用的SSH行为还是仅适用于Erlang实现?

不是答案 - 什么是erlang ssh守护进程? - Sergey Miryanov
SSH守护进程是在给定端口上监听SSH连接的服务器。 - Roberto Aloi
1个回答

3
是的,这是“第一次失败”身份验证,并且我已经遇到过您的问题多次。就实现而言,有人向我解释说守护进程会迭代授权密钥文件以查找匹配的登录名,然后再检查密钥。
这似乎是标准的实现方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接