
Estou procurando ssh do meu host local para um servidor remoto e de lá para um computador remoto. Atualmente, eu o configurei para que o computador remoto e o servidor remoto tenham ssh sem senha configurado entre eles, mas se eu fizer ssh do meu host local para o servidor e tentar fazer ssh para o computador a partir daí, obtenho:
Enter passphrase for key '/home/user/.ssh/id_dsa':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).
Se eu tentar fazer o ssh de um terminal aberto no servidor remoto para o computador remoto, tudo funcionará bem. Isso tem algo a ver com o fato de minha exibição não ser :0.0
ou algo totalmente diferente? Eu tentei xhost +local:
, mas fiquei perdido depois disso.
Obrigado
Responder1
Se ambos os sistemas tiverem a chave pública do seu sistema local, use -A
.
Dessh(1)
-A Enables forwarding of the authentication agent connection. This can also be specified on a per-host basis in a configuration file.
Esteja ciente também deste aviso:
Agent forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the agent's UNIX-domain socket) can access the local agent through the forwarded connection. An attacker cannot obtain key material from the agent, however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent.
O resultado é que quando você autentica no segundo host, a autenticação é encaminhada de volta ao host onde você reside fisicamente.
Exemplo:
me@host0:~ $ ssh -A host1
Last login: Thu Jun 14 11:31:53 2012 from 2001:db8::b0
me@host1:~ $ ssh -A host2
Last login: Thu Jun 14 11:41:05 2012 from 2001:db8::b1
me@host3:~ $ ssh -A host3
Last login: Tue Jun 12 10:46:50 2012 from 2001:db8::b2
me@host3:~ $
Responder2
Seu agente não consegue passar a autenticação para o computador remoto. Você pode encaminhar uma conexão para conectar-se diretamente à máquina remota, se desejar.
Vereste artigo sobre SSH multi-hope pule para a seção sobreProxyCommand
em ~/.ssh/config
:
Host remotecomputername
ProxyCommand ssh -q remoteservername nc -q0 remotecomputername 22