0

I'm writing something in R which needs to upload a file to a server using SSH key authentication. I'm using the below code from the RCurl package, but the private key I'm using has a passphrase. For the life of me, I can't figure out how to specify the passphrase for the key. Has anyone got experience of using the ftpUpload function, or possibly has a better way of doing this in R?

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

1 Answers1

1

From the R Documentation for curlOptions and running listCurlOptions() it looks like keypasswd is what you're looking for.

EDIT / UPDATE: I've tried adding this option to my own code and running it and it works fine for me. Your final call should look something like below:

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

And your output should look something like:

*   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 
G106863
  • 88
  • 5