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