何度やっても同じ

ただの日記

scala-sshでscp

github.com

PublicKeyLoginはデフォルトで ~/.ssh/id_rsa~/.ssh/id_dsa秘密鍵として使う。のだけど、環境によるのだろうか、"~" がユーザのホームディレクトリとして展開されないので、鍵は自分でちゃんとフルパスを指定。

val host = "xxx.example.com"
val home = System.getProperty("user.home")

SSH(host, HostConfig(
  PublicKeyLogin("xfan", s"$home/.ssh/id_rsa"),
  hostKeyVerifier = HostKeyVerifiers.DontVerif,
)) { client =>
  client.upload(s"$home/images/neko.jpg", "/tmp") match {
    case Success(_) => // nothing to do
    case Failure(e) => throw e
  }
}

かんたん。