使用R中的ftpUpload函数为私钥密码

时间:2017-04-15 13:54:16

标签: r ssh private-key rcurl passphrase

我在R中写了一些东西,需要使用SSH密钥身份验证将文件上传到服务器。我使用RCurl包中的以下代码,但我使用的私钥有一个密码。对于我的生活,我无法弄清楚如何指定密钥的密码。有没有人有使用ftpUpload功能的经验,或者可能有更好的方法在R中这样做?

ftpUpload(what = pathtofile,
       to = serverlocation,
       verbose = TRUE,
       .opts = list(
         ssh.private.keyfile = pathtokey
       ))

1 个答案:

答案 0 :(得分:0)

curlOptions的R文档和正在运行的listCurlOptions()看起来keypasswd就是您正在寻找的内容。

编辑/更新:我已经尝试将此选项添加到我自己的代码并运行它,它对我来说很好。您的最终通话应如下所示:

ftpUpload(what = pathtofile,
   to = serverlocation,
   verbose = TRUE,
   .opts = list(
     ssh.private.keyfile = pathtokey,
     keypasswd = passphrase
   ))

您的输出应该类似于:

*   Trying 123.456.789…
* TCP_NODELAY set
* Connected to 123.456.789 (123.456.789) port 22 (#0)
* SSH MD5 fingerprint: abcdefghij123456789
* SSH authentication methods available: publickey
* Using SSH public key file '/Users/User1/.ssh/id_rsa.pub'
* Using SSH private key file '/Users/User1/.ssh/id_rsa'
* Initialized SSH public key authentication
* Authentication complete
* Connection #0 to host 123.456.789 left intact
OK 
0