PuTTY usa o encaminhamento de agentes para a cadeia de servidores

3

Falha ao configurar o AgentForwarding com o PuTTY: (

O PuTTY é a versão mais recente do 0.61. Eu criei o par de chaves pública / privada para o PuTTY, converti-os para o formato openssh, adicionei-os ao /root/.ssh/authorized_keys no host1 e no host2. Em ambos os hosts em / etc / ssh / sshd_config:

PermitRootLogin without-password
AuthorizedKeysFile      %h/.ssh/authorized_keys
AllowAgentForwarding yes

Em ambos os hosts /root/.ssh/config contém

Host *
    ForwardAgent yes

Na configuração do PuTTY, a opção Conexão / SSH / Autenticação / Permitir encaminhamento de agentes [x] está marcada.

Se eu estiver executando o pagent.exe com o arquivo-chave carregado, posso conectar-me ao host1 e ao host2 sem a senha. Mas quando estou conectado ao host1 e tento ssh root@host2 , sou solicitado a fornecer uma senha. A variável $ SSH_AUTH_SOCK não está definida na minha sessão host1. O que estou fazendo errado?

    
por Selivanov Pavel 29.11.2011 / 20:19

3 respostas

4

O problema estava no aplicativo screen . Ele foi iniciado pelo PuTTY no remove host com screen -d -RR (Connection / SSH / Remote Command). Eu encontrei a solução aqui e a modifiquei ligeiramente:

~ / .bashrc:

# Correct screen and tmux behavior with ssh-agent
parent="$(ps -o comm --no-headers $PPID)"

case $parent in
sshd)
        keep_vars="SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION DISPLAY XAUTHORITY"
        touch $HOME/.ssh/keep_vars
        chmod 600 $HOME/.ssh/keep_vars
        for i in $keep_vars; do
                 (eval echo export $i=\\'\$$i\\')
        done > $HOME/.ssh/keep_vars
;;
screen|tmux)
        source $HOME/.ssh/keep_vars
;;
esac
# This command must be run from shell within detached and re-attached screen session
# to interact with ssh-agent properly
alias fixssh="source $HOME/.ssh/keep_vars"
alias ssh="source $HOME/.ssh/keep_vars; ssh"

A cada tomo que eu conecto, as variáveis do agente ssh são armazenadas em $HOME/.ssh/keep_vars Toda nova janela aberta na tela pode se conectar imediatamente a outras máquinas com a minha chave - ela recebe as variáveis apropriadas da tela. Em janelas antigas, preciso digitar fixssh e, em seguida, tentar conectar-me.

    
por 04.12.2011 / 18:50
4

Como $ SSH_AUTH_SOCK não está definido, é provável que seja um problema com o putty / pagent ou o próprio sshd.

Você pode colocar o sshd no modo de depuração com bastante facilidade. Faça o login no servidor (isso pode ser feito com segurança através do ssh, desde que você se lembre de reiniciar o sshd depois de terminar) e pare o sshd (através dos seus scripts de inicialização). Então corra:

/ usr / sbin / sshd -Dddd

(- D para o modo em primeiro plano, -ddd para depuração detalhada)

Tente se conectar via putty novamente e assista a saída do sshd. Se a massa estiver enviando as chaves para o encaminhamento de agentes, você deverá ver algo sobre [email protected]. Se você não vê isso, então a massa não está enviando a chave adequadamente para encaminhamento de agente / encaminhamento de agente solicitante.

Isso deve diminuir onde está o problema. Você também pode executar 'ssh -vvv' a partir do host1 para a saída de depuração detalhada ao tentar ssh para host2.

(Neste ponto, por favor, lembre-se de ctrl + C o processo sshd em primeiro plano e reinicie-o a partir de seus scripts init, caso contrário, você será bloqueado do seu servidor!)

    
por 01.12.2011 / 23:51
0

Eu afirmo que Putty está usando uma chave diferente daquela que é carregada no Pageant. Defina uma frase-senha na sua chave, carregue-a no Pageant e veja se Putty ainda pedirá uma frase secreta ao se conectar.

    
por 02.12.2011 / 11:12

Tags