r - comandos - conexion ssh windows
¿Cómo te conectas a un servidor remoto con ssh en R? (3)
Hay soporte directo para ssh / scp en RCurl:
x = scp("remote.ssh.host.com", "/home/dir/file.txt", "My.SCP.Passphrase", user="username")
¿Es posible conectarse al servidor ssh remoto con nombre de usuario y contraseña y leer un archivo? Investigué un poco y no encontré información sobre esto. Agradecería cualquier idea.
Es posible que esto no responda la pregunta inicial de @usuario1471980, pero si eres un usuario de mac y podrías correr
ssh -l user remotehost "cat /path/to/your/file"
en su caparazón como @sgibb sugirió pero obtuvo el error
ssh_askpass: exec(/usr/libexec/ssh-askpass): No such file or directory
cuando trataste de ejecutar la respuesta (read.table (pipe (''ssh ...''))) en R y no recibiste una solicitud de contraseña, probablemente no tengas el script ssh-askpass como sugiere el error y necesitas agregarlo /instalarlo.
Yo no sabía cómo hacerlo yo mismo, pero https://github.com/markcarver/mac-ssh-askpass lo resolvió por mí. Aquí está el guión. La página de github tiene instrucciones sobre cómo instalarlo.
#!/bin/bash
# Script: ssh-askpass
# Author: Mark Carver
# Created: 2011-09-14
# Licensed under GPL 3.0
# A ssh-askpass command for Mac OS X
# Based from author: Joseph Mocker, Sun Microsystems
# http://blogs.oracle.com/mock/entry/and_now_chicken_of_the
# To use this script:
# Install this script running INSTALL as root
#
# If you plan on manually installing this script, please note that you will have
# to set the following variable for SSH to recognize where the script is located:
# export SSH_ASKPASS="/path/to/ssh-askpass"
TITLE="${SSH_ASKPASS_TITLE:-SSH}";
TEXT="$(whoami)''s password:";
IFS=$(printf "/n");
CODE=("on GetCurrentApp()");
CODE=(${CODE[*]} "tell application /"System Events/" to get short name of first process whose frontmost is true");
CODE=(${CODE[*]} "end GetCurrentApp");
CODE=(${CODE[*]} "tell application GetCurrentApp()");
CODE=(${CODE[*]} "activate");
CODE=(${CODE[*]} "display dialog /"${@:-$TEXT}/" default answer /"/" with title /"${TITLE}/" with icon caution with hidden answer");
CODE=(${CODE[*]} "text returned of result");
CODE=(${CODE[*]} "end tell");
SCRIPT="/usr/bin/osascript"
for LINE in ${CODE[*]}; do
SCRIPT="${SCRIPT} -e $(printf "%q" "${LINE}")";
done;
eval "${SCRIPT}";
¿Qué tiene de malo la respuesta de @JamesThompson en Can R para leer desde un archivo a través de una conexión ssh? ? (el segundo ejemplo de código funciona con nombre de usuario y contraseña)
Pruebe lo siguiente:
> d <- read.table(pipe(''ssh -l user remotehost "cat /path/to/your/file"''))
user@remotehost''s password: # type password here
ssh
tiene que ser instalado y en $PATH
.