SSH ForwardAgent + multi-host

1

Eu tenho vários hosts em ~ / .ssh / config, e eles funcionam bem a partir da máquina local, mas a máquina remota não conhece esses hosts.

Host A
    HostName github.com
    IdentityFile ~/.ssh/A_rsa
Host B
    HostName github.com
    IdentityFile ~/.ssh/B_rsa
Host remotemachine.com
    ForwardAgent yes

Do localhost:

$ ssh -T git@A
Hi A! You've successfully authenticated, ...
$ ssh -T git@B
Hi B! You've successfully authenticated, ...

Do host remoto:

$ ssh remotemachine
$ ssh-add -l
  ... both keys present ...
$ ssh -T git@B
ssh: Could not resolve hostname B: Name or service not known
$ ssh -T [email protected]
Hi A! You've successfully authenticated, ...

Como usar a tecla B na máquina remota?

Dito isto, a partir da máquina local eu sou capaz de fazer ssh git@B , mas no nome de host da máquina remota B não é conhecido. Parece que o ssh-agent encaminha apenas as chaves, mas não os hosts. Como fazer com que os hosts sejam encaminhados também?

Eu poderia criar ~ / .ssh / config na máquina remota também, mas o que colocar no IdentityFile? Eu poderia usar $ ssh -i KEYFILE , mas o que colocar no KEYFILE se as chaves forem encaminhadas?

    
por user245986 15.08.2013 / 23:19

1 resposta

1

Sim, a única maneira de fazer isso é usar ssh -i ou criar ~/.ssh/config em cada máquina, com as mesmas configurações IdentityFile .

No entanto, basta copiar as chaves públicas para outros servidores. Ou seja, não ~/.ssh/A_rsa , mas apenas ~/.ssh/A_rsa.pub . O cliente ssh usará o agente para chaves privadas, assim como já faz em sua máquina local.

    
por 16.08.2013 / 01:11