Learn R Programming

RCurl (version 1.98-1.16)

scp: Retrieve contents of a file from a remote host via SCP (Secure Copy)

Description

This function allows us to retrieve the contents of a file from a remote host via SCP. This is done entirely within R, rather than a command line application and the contents of the file are never written to disc. The function allows the

Usage

scp(host, path, keypasswd = NA, user = getUserName(), rsa = TRUE,
     key = sprintf(c("~/.ssh/id_%s.pub", "~/.ssh/id_%s"),
                   if (rsa) "rsa" else "dsa"),
     binary = NA, size = 5000, curl = getCurlHandle(), ...)

Value

Either a raw or character vector giving the contents of the file.

Arguments

host

the name of the remote host or its IP address

path

the path of the file of interest on the remote host's file systems

keypasswd

a password for accessing the local SSH key. This is the passphrase for the key.

user

the name of the user on the remote machine

rsa

a logical value indicating whether to use the RSA or DSA key

key

the path giving the location of the SSH key.

binary

a logical value giving

size

an estimate of the size of the buffer needed to store the contents of the file. This is used to initialize the buffer and potentially avoid resizing it as needed.

curl

a curl handle (getCurlHandle) that is to be reused for this request and which potentially contains numerous options settings or an existing connection to the host.

...

additional parameters handed to curlPerform.

Author

Duncan Temple Lang

Details

This uses libcurl's facilities for scp. Use "scp" %in% curlVersion()$protocols to see if SCP is supported.

References

libcurl https://curl.se/

See Also

curlPerform getCurlOptionsConstants

Examples

Run this code
if (FALSE) {
   x = scp("eeyore.ucdavis.edu", "/home/duncan/OmegaWeb/index.html",
           "My.SCP.Passphrase", binary = FALSE)
   x = scp("eeyore.ucdavis.edu", "/home/duncan/OmegaWeb/RCurl/xmlParse.bz2",
           "My.SCP.Passphrase")
   o = memDecompress(x, asChar = TRUE)
}

Run the code above in your browser using DataLab