【发布时间】:2019-07-25 18:36:11
【问题描述】:
我正在尝试连接到 SFTP 站点以提取数据。它曾经可以工作,但由于某种原因,它在几周前停止了工作。 SFTP 的所有者说他们没有任何改变,我可以使用 WinSCP 轻松提取数据而不会出错。
protocol <- "sftp"
server <- "sftp.xxxx.net"
userpwd <- "user:password"
file <- "/public/bpus_dailytx.csv"
url <- paste0(protocol, "://", server, file)
data <- getURL(url = url, userpwd=userpwd, verbose = TRUE)
当我运行它时,我现在得到以下信息:
* Trying xxx.xx.xx.xxx...
* Connected to sftp.xxxx.net (xxx.xx.xx.xxx) port 22 (#0)
* SSH MD5 fingerprint: 34rh3ie93hhr39hhdik3
* SSH authentication methods available: publickey,keyboard-interactive
* Using SSH public key file '(nil)'
* Using SSH private key file ''
* SSH public key authentication failed: Unable to extract public key from private key file: Unable to open private key file
* No identity would match
* Authentication failure
* Closing connection 0
Error in function (type, msg, asError = TRUE) : Authentication failure
它连接正常,但随后身份验证失败。有什么想法可以在这里发生吗?同样,这段代码曾经可以工作,但发生了一些变化。除此以外,我还有哪些其他方法可以尝试提取数据?
【问题讨论】:
-
您是否曾经拥有过该网站的公钥/私钥对?
-
以下是否有效:
data <- getURL(url = url, keypasswd = "your_key_passwd", ssh.private.keyfile = "your_path_to_keyfile", username = "your_user_name")? -
您的密钥格式是什么?它不是腻子格式而不是 SSH 格式吗?如果是这样,用 puttygen 打开它以将其导出为 opensshKey(在转换菜单中)
-
@Stu 与我的代码示例?
-
@MatthewSchuelke 是的,我使用了你的代码示例,只是将它指向新的 Open SSH 密钥,它就像魔术一样工作