3

У меня проблема с tramp против определенного хоста, когда я использую ssh-ключи для аутентификации. Он отлично работает, когда я не использую аутентификацию по ssh-ключу, но я хотел бы запретить ввод пароля все время.

Не знаю, связано ли это, но я использую zsh для оболочки.

Я следовал обоим советам по установке tramp-chunksize в 500 и добавлению следующего кода в .zshrc:

if [[ "$TERM" == "dumb" ]]
then
  unsetopt zle
  unsetopt prompt_cr
  unsetopt prompt_subst
  unfunction precmd
  unfunction preexec
  PS1='$ '
fi

Но это не работает, и все еще висит с сообщением Tramp: Ожидание подсказок от удаленной оболочки

Любые идеи о том, как предотвратить эту надоедливую проблему? Благодарю.

3 ответа3

6

Для меня Tramp 2.1.19-pre с аутентификацией zsh и SSH kye работает с использованием

(setq tramp-shell-prompt-pattern "^[^$>\n]*[#$%>] *\\(\[[0-9;]*[a-zA-Z] *\\)*")

в моем ~/.emacs

3

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

Возможное объяснение состоит в том, что ssh не видит ваш агент ssh, когда вы запускаете его из Emacs. Можете ли вы войти на удаленный компьютер, используя свой ключ с помощью ssh из M-x shell M-x term или буфера терминов Mx ? Если ваш ключ имеет парольную фразу, ssh должен каким-то образом получить расшифрованный ключ. Он может подсказать вам напрямую (но я не уверен, что tramp пропустит подсказку ключа), или он может запустить внешнюю программу, запрашивающую ключ (для этого требуется установить переменную окружения SSH_ASKPASS ), или он может получите ключ от вашего агента ssh (для этого требуется установить переменную окружения SSH_AUTH_SOCK ). Ваша проблема может заключаться в том, что вы не устанавливаете SSH_ASKPASS или SSH_AUTH_SOCK в нужном месте, так что это не определено в вашей сессии Emacs.

3

На вопрос был дан ответ, но для людей, которые наткнулись на это, не забудьте проверить, может ли ваша оболочка запрашивать какой-либо пользовательский ввод, прежде чем представлять оболочку. Например, oh-my-zsh проверяет наличие обновлений и запрашивает подтверждение перед их установкой при запуске оболочки. Это заставит tramp бесконечно ждать приглашения, поэтому убедитесь, что вход в систему проходит гладко, когда вы ssh, прежде чем спуститься в кроличью нору tramp.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .