Tingolfin Tingolfin - 25 days ago 10
R Question

R: change port to connect with SFTP server

I have a connection with an ftp server with the following code:

url <- "ftp://MyServer"
userpwd <- "MyUser:MyPass"
filenames <- getURL(url, userpwd = userpwd, ftp.use.epsv = FALSE, dirlistonly = TRUE, port = 22)
filen <- "MyFile.csv"
rawdata <- getURL(paste(url, filen, sep = ""), userpwd = userpwd, crlf = TRUE)


The file will be moved to an SFTP server, so I need to change the input. This new SFTP server is accessed via port 22 instead of the standard port 21. At the moment the connection fails with the following error

Error in function (type, msg, asError = TRUE) :
Failed to connect to MyServer port 21: Connection refused


It takes the wrong port, but how do I tell R to choose port 22?

Answer

You need to specify the SFTP protocol in the URL, so the line

url       <- "ftp://MyServer"

should become

url       <- "sftp://MyServer"

getUrl will then use the SSH port (22).