我是scala的菜鸟并尝试弄清楚如何使用Scala SSH连接到配置了SSH client keys / public key exchange的服务器。我的目标是使用正确的客户端密钥配置创建与服务器的成功SSH连接,而无需在应用程序中提供密码。如果服务器没有正确的客户端密钥配置,则期望用户已设置正确的Host Config File。这就是我到目前为止所做的:
try {
SSH("server_with_client_keys_configured") { client =>
val x = client.exec("ls -a")
println(x.left)
x.right.map { result =>
println("Result:\n" + result.stdOutAsString())
}
} catch {
case e: Exception => println(e)
}
现在,如果我有一个适当的主机配置文件,我可以使用该代码段连接到主机。但是,有一些我无法弄清楚的事情:
login-type: keyfile
字段并省略密码字段,那么我得到:LeftProjection(左(无法验证(使用密钥文件)到server_with_client_keys_configured:22由于net.schmizz.sshj.userauth.UserAuthException:已用尽的可用身份验证方法))
最后,如果这只是Scala SSH不支持公钥交换的情况,那么有人可以提出替代方案吗?