ssh-agent: Como manter a chave de login e adicionar mais identidades?

1

Quando faço o login na minha instância local do Ubuntu 14 a partir do Windows (eu uso SecureCRT como um cliente SSH) usando minha chave RSA, a chave está disponível para encaminhamento para outras sessões SSH (ela está listada com ssh-add -l ). No entanto, não posso adicionar mais identidades ao agente padrão:

# ssh-add -l
2047 29:c7:24:ca:ee:21:c8:1c:8e:31:7b:60:d9:45:45:df "rsa-vwal-20160112" (RSA)
# ps aux | grep ssh-agent
ville      3102  0.0  0.1  12968  2280 pts/3    S+   02:13   0:00 grep --color=auto ssh-agent
# env | grep SSH
SSH_CLIENT=192.168.50.101 30920 22
SSH_CONNECTION=192.168.50.101 30920 192.168.220.20 22
SSH_TTY=/dev/pts/3
SSH_AUTH_SOCK=/tmp/ssh-UVKqhSow2l/agent.2679
# ssh-add /home/ville/.ssh/keys/gitkey/gitkey
Enter passphrase for /home/ville/.ssh/keys/gitkey/gitkey: 
SSH_AGENT_FAILURE
Could not add identity: /home/ville/.ssh/keys/gitkey/gitkey
#

Suponho que isso ocorra porque não há processo ssh-agent real; aparentemente, o agente inicial é fornecido por sshd (?)

Agora, se eu iniciar um novo agente e aplicar as variáveis de ambiente que ele gera para que o SSH_AUTH_SOCK seja alterado, posso adicionar identidades ao agente ...

# ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-G8dg8bePFC8K/agent.3115; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3116; export SSH_AGENT_PID;
echo Agent pid 3116;
# SSH_AUTH_SOCK=/tmp/ssh-G8dg8bePFC8K/agent.3115; export SSH_AUTH_SOCK;
# SSH_AGENT_PID=3116; export SSH_AGENT_PID;
# ps aux | grep ssh-agent                  
ville      3116  0.0  0.0  10628   320 ?        Ss   02:16   0:00 ssh-agent
ville      3128  0.0  0.1  12968  2120 pts/3    S+   02:20   0:00 grep --color=auto ssh-agent
# ssh-add -l
The agent has no identities.
# ssh-add /home/ville/.ssh/keys/gitkey/gitkey
Enter passphrase for /home/ville/.ssh/keys/gitkey/gitkey: 
Identity added: /home/ville/.ssh/keys/gitkey/gitkey (/home/ville/.ssh/keys/gitkey/gitkey)
# ssh-add -l                                 
2048 05:9c:bc:b5:cd:e4:4e:a1:53:60:57:b4:39:e4:18:d5 /home/ville/.ssh/keys/gitkey/gitkey (RSA)
# 

... mas obviamente a chave inicial não está mais disponível porque o agente agora é diferente.

Minha pergunta é: É possível manter a chave de login no agente E poder adicionar mais identidades a ela com ssh-add ? Posso, por exemplo, fazer o agente inicial aceitar identidades adicionais ou, de alguma forma, duplicar a chave de login no agente explicitamente instanciado?

    
por Ville 02.05.2016 / 08:31

1 resposta

2

Não é um problema de ssh-agent , mas do seu cliente Windows (fornecendo ssh-agent interface). Parece que não implementa interface para adicionar outra chave do soquete. Isso não deve ser um problema com o% normalssh-agent.

A única solução possível hoje, eu sei é copiar a chave para o seu host local.

Existe um bug openssh upstream (alterações do cliente) solicitando funcionalidade semelhante (suporte para a lista de agentes), o que deve resolver o seu problema.

    
por 02.05.2016 / 10:49

Tags