Tramp: Esperando por prompts do shell remoto

3

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.

    
por grm 23.08.2010 / 10:50

3 respostas

6

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

    
por 23.08.2010 / 19:55
3

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.

    
por 23.08.2010 / 23:47
3

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.

    
por 18.08.2014 / 16:57

Tags