Для аутентификации удаленному серверу требуется личный ключ и фраза-пароль. Я пытаюсь подключиться к серверу как root
(на этом сервере) из Nautilus, работающего от имени моей учетной записи без полномочий root на моем локальном рабочем столе Ubuntu. Закрытый ключ, который необходим для аутентификации, это , а не , расположенный в ~/.ssh
(у меня там уже есть другие ключи), но у меня он есть в другом каталоге.
В дополнение к очевидному подходу я попытался поместить root@server
в поле «Сервер» и оставить поля «Имя пользователя» и «Пароль» пустыми, оставив пароль в поле «Пароль», но он по-прежнему говорит « В доступе отказано ", и он не запрашивает закрытый ключ в любой момент.
Я также пытался ssh-add path/to/privatekey
, но там написано: «Не удалось открыть соединение с вашим агентом аутентификации». Однако я не уверен, что ssh-add
здесь вообще уместно.
Я могу подключиться к серверу через терминал просто с помощью
ssh -i <...>/id_rsa root@server
и отвечаю на вопрос о парольной фразе, который следует.
Краткая версия (пропустить сценарий) решения Марцина Камински:
ssh-agent
ssh-add /path/to/your/private_key
nautilus sftp://user@server
. Я думаю, что проще начать, чтобы проверить, работает ли решение. У меня была такая же проблема после установки PasswordAuthentication no
в /etc/ssh/sshd_config
, и эти три команды решили мою проблему.
Если я правильно понимаю, вы используете аутентификацию с открытым ключом, но ваш закрытый ключ требует пароль для разблокировки, и попытка подключения не удалась, поскольку у вас, очевидно, не запрашивается пароль, защищающий ключ.
Этот вопрос немного отличается, но первый ответ, кажется, описывает ту же ситуацию. Однако это подразумевает, что диалоговое окно ввода пароля должно просто работать . Возможно, это послужит отправной точкой?
Поскольку вы говорите, что это работает, если вы используете ssh
в терминале, возможно, это не что-то вроде изменения идентификатора удаленного хоста, что, я думаю, может привести к сбою в работе без вывода сообщений. nautilus
.
Я не понимаю, почему диалог выбора клавиш должен появляться вообще. Сервер должен предложить методы аутентификации, которые он готов принять, и клиент может предоставить учетные данные.
Одним из наиболее распространенных способов предоставления этих сведений является использование 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, не предоставляя пароль.
Я мог подключиться к своему серверу в Nautilus (Ubuntu 12.04), используя закрытый ключ, выполнив следующие действия:
Когда вы нажмете «Подключить», появится диалоговое окно с сообщением о том, что для разблокировки ключа необходим пароль. В моем случае ключ не был по умолчанию "~ / .ssh / id_rsa", поэтому связь между клиентом и сервером SSH должна была показать Наутилусу, какой ключ следует использовать.
После ввода пароля открылось новое окно Nautilus, где я должен просмотреть файлы на моем сервере. На левой панели у меня теперь есть ярлык «SFTP для пользователя на сервере», который я также могу использовать для u (n) монтирования файловой системы сервера.