Go 什么时候需要ssh.KeyboardInteractive?

Go 什么时候需要ssh.KeyboardInteractive?,go,ssh,Go,Ssh,我看到ssh。上面使用了KeyboardInteractive。但是如果我只使用这里提到的ssh.Password,我仍然可以登录到我测试的ssh服务器 有人能告诉我什么时候需要ssh.KeyboardInteractive,什么时候不应该使用ssh.Password。但是大致上,passwordauthentication发送一个密码,keyboard interactiveauthentication设计用于多个提示 例如,如果服务器希望同时使用密码和TOTP代码进行身份验证,则可以使用键

我看到
ssh。上面使用了KeyboardInteractive
。但是如果我只使用这里提到的
ssh.Password
,我仍然可以登录到我测试的ssh服务器


有人能告诉我什么时候需要
ssh.KeyboardInteractive
,什么时候不应该使用
ssh.Password
。但是大致上,
password
authentication发送一个密码,
keyboard interactive
authentication设计用于多个提示

例如,如果服务器希望同时使用密码和TOTP代码进行身份验证,则可以使用
键盘交互
。您还可以在各种其他上下文中使用它,包括普通用户名和密码。通常,如果服务器执行PAM,那么它通常也知道如何执行
键盘交互
。服务器端需要哪一个当然是本地策略的问题


当然,典型的最佳实践是避免这两种情况,而是选择公钥或一种GSSAPI(Kerberos)类型。

只有当它是服务器接受的唯一身份验证时才需要它。大多数服务器不允许密码验证。仅允许公钥身份验证并不少见。如何配置ssh服务器,以便不接受
ssh.Password
,而只接受
ssh.KeyboardInteractive
?假设openssh,当
authMethods
中同时指定了
ssh.KeyboardInteractive
ssh.Password
时,如示例代码所示,首先尝试哪一种方法?从逻辑上讲,我会假设它们是按顺序尝试的,特别是因为文档中说只会使用特定方法中的第一种。