Scala SSH:使用公钥交换连接到主机

时间:2014-11-21 17:59:48

标签: scala ssh public-key-exchange

我是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)
 }

现在,如果我有一个适当的主机配置文件,我可以使用该代码段连接到主机。但是,有一些我无法弄清楚的事情:

  1. 如果主机配置了客户端密钥,并且没有主机文件,则代码块不会执行
  2. 错误出现在左侧投影中(对我来说很奇怪,为什么不是例外?似乎很容易错过错误)
    • 如果我为配置了客户端密钥的主机使用主机配置文件,但是提供login-type: keyfile字段并省略密码字段,那么我得到:
  3.   

    LeftProjection(左(无法验证(使用密钥文件)到server_with_client_keys_configured:22由于net.schmizz.sshj.userauth.UserAuthException:已用尽的可用身份验证方法))

    最后,如果这只是Scala SSH不支持公钥交换的情况,那么有人可以提出替代方案吗?

0 个答案:

没有答案