因此,我创建了一个闪亮的小应用程序,并将其托管在一个服务器上,假设是服务器A。该应用程序将尝试通过ssh连接到另一个服务器,比如服务器B。为了实现这个连接,我使用了CRAN的ssh.utils包中的run.remote。
当我尝试从RStudio直接在服务器A上运行我闪亮的应用程序(使用“运行应用程序”按钮)时,会弹出一个小窗口,要求输入密码以访问服务器B。
但是,当我在服务器A上使用shiny-server并运行应用程序时,我没有看到要求输入密码的弹出窗口。然而,在shiny-server日志中,我发现了以下消息:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).这意味着我的应用程序已经尝试了三次访问,但我并不知道。
我的问题是,我应该如何处理shiny-server,这样它也会弹出窗口询问密码,就像我使用Rstudio时一样?另一个原因是,我不想使用ssh私钥/公钥。
下面是我在服务器A中的简单代码:
library(shiny)
library(shinyFiles)
library(ssh.utils)
ui <- fluidPage(
navbarPage(title = "Main window",
tabPanel(title = "Test SSH",
textInput(inputId="username", label = h3("Username:")),
actionButton("submit", "Submit")
)
)
)
server <- function(input, output, session) {
observeEvent(input$submit, {
## submit function here ##
res <- run.remote("randomScript",remote = paste0(input$username,"@server-b.de"))
})
}
shinyApp(ui = ui, server = server)事先谢谢你。
发布于 2017-03-11 18:53:07
我不认为您可以将密码传递给run.remote,帮助文本声明(关于远程参数):
ssh的
远程计算机规范,其格式为不需要交互式密码输入的@server。对于本地执行,传递一个空字符串"“(默认)。
因此,解决方案应该是passwordless ssh login。
我认为使用Rstudio时出现的弹出框就是您的OS/Desktop用来询问SSH密码的对话框。
https://stackoverflow.com/questions/42699224
复制相似问题