【问题标题】:Shiny app on shiny-server does not ask for ssh password闪亮服务器上的闪亮应用程序不要求输入 ssh 密码
【发布时间】:2018-09-02 20:42:10
【问题描述】:

所以,我创建了一个小的 Shiny 应用程序并将其托管在服务器上,比如服务器 A。这个应用程序将尝试连接到另一台服务器,比如通过 ssh 连接到服务器 B。为此,我使用了 CRAN 的 ssh.utils 包中的 run.remote。

当我尝试在服务器 A 上直接从 RStudio 运行我的 Shiny 应用程序(使用“运行应用程序”按钮)时,会弹出一个小窗口,要求输入密码以访问服务器 B。

但是,当我在服务器 A 上使用 shiny-server 并运行应用程序时,我看到没有弹出窗口要求输入密码。然而,在闪亮服务器日志中,我发现了以下消息:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

意味着我的应用程序已尝试 3 次以获取我不知道的访问权限。

我的问题是,我应该如何处理 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)

先谢谢了。

【问题讨论】:

    标签: ssh shiny shiny-server


    【解决方案1】:

    我认为您不能将密码传递给run.remote,帮助文本指出(关于远程参数):

    ssh 的远程机器规范,格式如 user@server 不需要交互式密码输入。对于本地 执行,传递一个空字符串“”(默认)。

    所以解决方案是passwordless ssh login

    我认为你在使用 Rstudio 时得到的弹出框是你的操作系统/桌面用来询问 SSH 密码的对话框。

    【讨论】:

      猜你喜欢
      • 2016-05-23
      • 1970-01-01
      • 2016-08-01
      • 2014-08-09
      • 2015-05-13
      • 2016-12-28
      • 2018-12-02
      相关资源
      最近更新 更多