Не удается подключиться к удаленному серверу с помощью Nautilus и закрытого ключа

Для аутентификации удаленному серверу требуется личный ключ и фраза-пароль. Я пытаюсь подключиться к серверу как root (на этом сервере) из Nautilus, работающего от имени моей учетной записи без полномочий root на моем локальном рабочем столе Ubuntu. Закрытый ключ, который необходим для аутентификации, это , а не , расположенный в ~/.ssh (у меня там уже есть другие ключи), но у меня он есть в другом каталоге.

В дополнение к очевидному подходу я попытался поместить root@server в поле «Сервер» и оставить поля «Имя пользователя» и «Пароль» пустыми, оставив пароль в поле «Пароль», но он по-прежнему говорит « В доступе отказано ", и он не запрашивает закрытый ключ в любой момент.

Я также пытался ssh-add path/to/privatekey, но там написано: «Не удалось открыть соединение с вашим агентом аутентификации». Однако я не уверен, что ssh-add здесь вообще уместно.

Я могу подключиться к серверу через терминал просто с помощью

ssh -i <...>/id_rsa root@server

и отвечаю на вопрос о парольной фразе, который следует.

4
задан 7 December 2012 в 17:49

4 ответа

Краткая версия (пропустить сценарий) решения Марцина Камински:

ssh-agent
ssh-add /path/to/your/private_key
nautilus sftp://user@server

. Я думаю, что проще начать, чтобы проверить, работает ли решение. У меня была такая же проблема после установки PasswordAuthentication no в /etc/ssh/sshd_config, и эти три команды решили мою проблему.

0
ответ дан 7 December 2012 в 17:49

Если я правильно понимаю, вы используете аутентификацию с открытым ключом, но ваш закрытый ключ требует пароль для разблокировки, и попытка подключения не удалась, поскольку у вас, очевидно, не запрашивается пароль, защищающий ключ.

Этот вопрос немного отличается, но первый ответ, кажется, описывает ту же ситуацию. Однако это подразумевает, что диалоговое окно ввода пароля должно просто работать . Возможно, это послужит отправной точкой?

Поскольку вы говорите, что это работает, если вы используете ssh в терминале, возможно, это не что-то вроде изменения идентификатора удаленного хоста, что, я думаю, может привести к сбою в работе без вывода сообщений. nautilus.

0
ответ дан 7 December 2012 в 17:49

Я не понимаю, почему диалог выбора клавиш должен появляться вообще. Сервер должен предложить методы аутентификации, которые он готов принять, и клиент может предоставить учетные данные.

Одним из наиболее распространенных способов предоставления этих сведений является использование ssh-agent, который, по-видимому, не запущен. Вот небольшой фрагмент, который я вставил в свой ~/.profile, чтобы убедиться, что мой ssh-agent всегда работает:

run_ssh_agent() {
  ssh-agent | grep -vi 'agent pid' > ~/.ssh-agent
  . ~/.ssh-agent
}

if [[ -f ~/.ssh-agent ]]; then
  . ~/.ssh-agent
  if [[ -n ${SSH_AGENT_PID} ]]; then
    if ! ps -p ${SSH_AGENT_PID} | grep 'ssh-agent' &>/dev/null; then
      run_ssh_agent
    fi
  fi
else
  run_ssh_agent
fi

Поместите туда код, выйдите из сеанса X, войдите снова, откройте терминал и добавьте ключ к своему агенту:

ssh-add /path/to/your/private_key

Убедитесь, что он добавлен, запустив ssh-add -l, и подключитесь к серверу, используя Nautilus, не предоставляя пароль.

0
ответ дан 7 December 2012 в 17:49

Я мог подключиться к своему серверу в Nautilus (Ubuntu 12.04), используя закрытый ключ, выполнив следующие действия:

  • В Nautilus выберите меню: «Файл» -> «Подключиться к серверу». . "
  • Измените" Тип: "на" SSH "
  • Введите адрес сервера в поле" Сервер: "(без имени пользователя @)
  • Введите своего пользователя имя после "Имя пользователя:", но оставьте поле пароля пустым.

Когда вы нажмете «Подключить», появится диалоговое окно с сообщением о том, что для разблокировки ключа необходим пароль. В моем случае ключ не был по умолчанию "~ / .ssh / id_rsa", поэтому связь между клиентом и сервером SSH должна была показать Наутилусу, какой ключ следует использовать.

После ввода пароля открылось новое окно Nautilus, где я должен просмотреть файлы на моем сервере. На левой панели у меня теперь есть ярлык «SFTP для пользователя на сервере», который я также могу использовать для u (n) монтирования файловой системы сервера.

0
ответ дан 7 December 2012 в 17:49

Другие вопросы по тегам:

Похожие вопросы: