Envie minha chave privada somente através da sessão ssh

2

Meu cenário:

localhost: contains my private key
serverA: contains my public key
serverB: contains my public key

Eu faço o login em serverA e executo algumas operações, que envolvem a cópia de alguns arquivos do serverB . Como faço login com um nome de usuário comum, não quero que minha chave privada seja armazenada no serverA . Isto significa que, na situação ideal, eu seria capaz de enviar minha chave privada somente através da sessão ssh e disponibilizá-la apenas como ssh-agent , então eu conecto de serverA para o serverB , minha chave privada é lida da memória e usada para autenticar para serverB . Isso é possível?

    
por Andras Gyomrey 07.04.2016 / 14:04

1 resposta

3

Sim, é isso que o ssh -A flags faz.

Isso só funciona com chaves já adicionadas a um ssh-agent em sua máquina local . Se você tiver que digitar sua frase secreta quando se conectar a serverA (ou apenas usar uma chave sem senha), isso não funcionará.

Da página do manual:

-A
Enables forwarding of the authentication agent connection. This can also be specified on a per-host basis in a configuration file.

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.

-a
Disables forwarding of the authentication agent connection.

Você pode querer prestar atenção ao aviso na citação. -A não expõe sua chave, mas permite que qualquer pessoa com acesso de leitura / gravação ao soquete ssh-agent no servidor use suas credenciais, se elas souberem onde procurar pelo soquete. Como você faz login usando um usuário comum, qualquer outra pessoa com acesso a esse usuário pode obter acesso ao seu agente.

Acho que o SSH_AUTH_SOCK no servidor apenas encaminha o tráfego direto para o ssh-agent em execução na sua máquina local .

    
por 07.04.2016 / 14:12