R can read files on a web server using convenient syntax such as
data <- read.delim("http://remoteserver.com/file.dat")
I wonder if there is a way to do something similar with a file on an ssh server with passwordless-ssh already in place?
An SSH client is a software which uses the SSH protocol to connect to a remote computer. In general SSH protocol can be used for two purposes, file transfers and terminal access.
To initiate an SSH connection to a remote system, you need the Internet Protocol (IP) address or hostname of the remote server and a valid username. You can connect using a password or a private and public key pair. Because passwords and usernames can be brute-forced, it's recommended to use SSH keys.
You can read a file using pipes like this:
d = read.table( pipe( 'cat data.txt' ), header = T )
If you wanted to read from an SSH connection, try this:
d = read.table( pipe( 'ssh hostname "cat data.txt"' ), header = T )
There's also no reason to confine this to just ssh commands, you could also do something like this:
d = read.table( pipe( 'cat *.txt' ) )
See the R Data Import/Export page for more information, specifically the Connections section.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With