Reverse o encaminhamento do agente ssh. Usando uma chave ssh remota

1

Eu tenho minha chave ssh privada do github.com em um ssh-agent em um servidor de chaves. Do meu computador doméstico por trás do NAT, quero executar git pull e usar minha chave ssh do github.

A única maneira de fazer isso é ssh no servidor de chaves e encaminhar a porta 22, em seguida, ssh de volta ao meu computador doméstico enquanto encaminha o agente, em seguida, execute git pull nesse novo shell da seguinte forma:

home$ ssh keyserver -R10022:localhost:22
keyserver$ ssh -A localhost -p10022
home$ git pull

Existe uma maneira mais simples de usar a chave ssh remota?

    
por Collin Anderson 03.05.2013 / 16:32

1 resposta

4

Eu usei duas abordagens diferentes em cenários semelhantes aos seus.

  1. Iniciar um agente localmente
  2. Encaminhe para o servidor
  3. Use ssh-add para adicionar a chave do servidor ao seu agente local (opcionalmente com um tempo de vida limitado)
  4. Efetue logout do servidor
  5. Use a chave do agente local quantas vezes desejar

Ou

  1. Iniciar um agente localmente
  2. ssh server cat keyfile | ssh-add / dev / stdin

Se o servidor estiver configurado de uma maneira que não permitirá que sua chave saia do servidor, nenhuma das abordagens acima funcionará. Nesse caso, não há solução, que é mais simples do que a sua própria abordagem. Mas existem alternativas, que podem fornecer uma melhor experiência do usuário e / ou segurança.

Este comando abriria o mesmo par de conexões ssh que você usou em seu próprio exemplo. Mas, em seguida, retorne ao shell inicial onde você pode fazer uso do agente encaminhado.

export $(grep -m1 ^SSH_AUTH_SOCK= <(
ssh -n -R10022:localhost:22 keyserver ssh -A localhost -p10022 "'env ; sleep 99999'"))
    
por 29.03.2014 / 20:47