Como usar o PuTTY para encaminhar chaves

6

Minha situação: - Estou conectando do meu PC (Windows 7) ao servidor A via (usando minha chave privada e minha senha) com um userA - gostaria de me conectar de A ao servidor B via um comando ssh: ssh userB@serverName , mas recebo "Permission denied".

Para cada servidor, minhas chaves estão presentes na pasta ssh\authorized_keys . Mesmo, se eu posso ligar do meu PC para o servidor B diretamente e se eu tentei se conectar a partir do servidor A, eu recebo este erro.

As pessoas que estão usando Linux estão conseguindo usar o comando ssh -A para se conectar ao servidor B. Acreditei que a opção PuTTY "Encaminhamento de agentes" era equivalente, mas ... não, continua a mesma erro.

Registros de ssh , quando estou tentando me conectar ao servidor B do servidor A:

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to serverB port 22.
debug1: Connection established.
debug1: identity file /home/userA/.ssh/identity type -1
debug1: identity file /home/userA/.ssh/id_rsa type -1
debug1: identity file /home/userA/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'serverB' is known and matches the RSA host key.
debug1: Found key in /home/userA/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
*******************************************************************************
*            This equipment is the propertyof            *
*                    UNAUTHORIZED ACCESS WILL BE PROSECUTED                   *
*******************************************************************************
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

debug1: Next authentication method: publickey
debug1: Trying private key: /home/userA/.ssh/identity
debug1: Trying private key: /home/userA/.ssh/id_rsa
debug1: Trying private key: /home/userA/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
    
por Noche 17.02.2015 / 11:48

1 resposta

16

Sim, a opção é equivalente, no entanto, não encaminha as chaves em geral - encaminha as conexões para o "agente SSH" especificamente. O "agente" mantém suas chaves na memória, descriptografadas (então você só precisa desbloqueá-las uma vez), e o cliente pede para assinar dados para autenticação.

No Linux / Unix / BSD / Cygwin, o programa de agente do OpenSSH é ssh-agent (embora em algumas ocasiões ele seja substituído por gpg-agent ou gnome-keyring, mas isso não importa aqui).

Enquanto isso, o PuTTY no Windows tem pageant.exe para o mesmo propósito. (Outros programas, como o WinSCP, também usam o Pageant.)

Primeiro, inicie o agente e carregue suas chaves nele. (Clicar duas vezes no arquivo de chave .ppk será suficiente.) Agora, quando o PuTTY do seu PC se conectar ao servidor A, ele usará a chave do agente em execução no PC, não do arquivo .ppk.

  • Concurso no PC (agente) ⇆ PuTTY no PC (cliente) ⇆ sshd no servidorA (servidor)

Da mesma forma, quando você está no servidor A e executa ssh serverB , ele tenta entrar em contato com o agente em execução no servidor A.

  • ??? (agente) ⇆ ssh no servidorA (cliente) ⇆ sshd no servidorB (servidor)

Se você se conectou ao servidor A com a opção "Encaminhamento de agente" ou -A habilitada, o PuTTY retransmitirá as conexões do agente e ssh no servidorA poderá usar as chaves do agente no seu PC. / p>

  • Concurso no PC (agente) ⇆ PuTTY no PC (cliente de encaminhamento) ⇆ sshd no servidorA (servidor de encaminhamento) ⇆ ssh no servidorA (cliente) ⇆ sshd no servidorB (servidor)
por 17.02.2015 / 13:54