Para mim, o Tramp 2.1.19-pre com autenticação zsh e SSH kye funciona usando
(setq tramp-shell-prompt-pattern "^[^$>\n]*[#$%>] *\(\[[0-9;]*[a-zA-Z] *\)*")
no meu ~ / .emacs
Eu tenho um problema com tramp em um host específico quando uso ssh-keys para autenticação. Ele funciona bem quando não uso a autenticação ssh-key, mas gostaria de evitar a inserção da senha o tempo todo.
Não sei se está relacionado, mas eu uso o zsh para shell.
Eu segui as duas dicas de configuração de tramp-chunksize para 500 e adicionando o seguinte código ao .zshrc:
if [[ "$TERM" == "dumb" ]]
then
unsetopt zle
unsetopt prompt_cr
unsetopt prompt_subst
unfunction precmd
unfunction preexec
PS1='$ '
fi
Mas não está funcionando e ainda está pendurado com a mensagem Tramp: Aguardando prompts do shell remoto
Alguma idéia de como evitar esse problema irritante? Obrigado.
Eu não vejo como o seu shell remoto poderia ser o problema se o tramp trabalha com autenticação de senha, mas não com autenticação de chave.
Uma possível explicação é que ssh
não vê seu agente ssh quando você o executa a partir do Emacs. Você pode efetuar login na máquina remota usando sua chave com ssh
de um buffer M-x shell
ou M-x term
? Se sua chave tiver uma frase secreta, ssh
precisará obter a chave descriptografada de alguma forma. Ele pode avisá-lo diretamente (mas não tenho certeza se o tramp deixaria o prompt da chave passar) ou pode iniciar um programa externo para solicitar a chave (isso requer que a variável de ambiente SSH_ASKPASS
seja definida) ou ele pode obter a chave do seu agente ssh (isso requer que a variável de ambiente SSH_AUTH_SOCK
seja definida). Seu problema pode ser que você não esteja definindo SSH_ASKPASS
ou SSH_AUTH_SOCK
no lugar certo, para que não seja definido em sua sessão do Emacs.
A pergunta foi respondida, mas para as pessoas tropeçarem nisso, lembre-se de verificar se o seu shell pode pedir alguma entrada do usuário antes de apresentar o shell. Por exemplo, oh-my-zsh verifica se há atualizações e pede confirmação antes de instalá-las na inicialização do shell. Isso fará com que o tramp espere incessantemente por um prompt, então certifique-se de que o login corra bem quando você fizer o ssh antes de descer o rabbithole.