Приложение Shiny на сервере shiny-server не запрашивает пароль ssh

Итак, я создал небольшое приложение Shiny и разместил его на сервере, скажем, на сервере A. Это приложение попытается подключиться к другому серверу, скажем, серверу B по ssh. Для этого подключения я использовал run.remote из пакета ssh.utils CRAN.

Когда я пытаюсь запустить приложение Shiny из RStudio (с помощью кнопки «Запустить приложение») непосредственно на сервере A, появляется небольшое окно с запросом пароля для доступа к серверу B.

Однако, когда я использую shiny-server на сервере A и запускаю приложение, я не вижу всплывающего окна с запросом пароля. Тем не менее, в журнале блестящего сервера я обнаружил следующее сообщение:

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)

Заранее спасибо.


person pandamon    schedule 09.03.2017    source источник


Ответы (1)


Я не думаю, что вы можете передать пароль run.remote, текст справки гласит (что касается удаленного аргумента):

Спецификация удаленного компьютера для ssh в таком формате, как user @ server, которая не требует интерактивного ввода пароля. Для локального выполнения передайте пустую строку "" (по умолчанию).

Таким образом, решением будет вход по SSH без пароля.

Я думаю, что всплывающее окно, которое вы получаете при использовании Rstudio, - это диалоговое окно, которое ваша ОС / Рабочий стол использует для запроса пароля SSH.

person Kristoffer Winther Balling    schedule 11.03.2017