Eu criei um script de provisionamento que me ajuda a criar um túnel SSH para uma máquina remota a partir da minha caixa vagrant (Ubuntu 14.04 LTS) toda vez que a caixa é iniciada.
Parte interessante do meu Vagrantfile:
config.ssh.forward_agent = true
config.vm.provision :shell, path: "setuptunnel.sh", run: "always", privileged: false
E o arquivo setuptunnel.sh:
#!/usr/bin/env bash
ssh -o StrictHostKeyChecking=no -NL 5432:localhost:5432 me@remotemachine &> /tmp/sshtunnel.log &
if [ $? -eq 0 ]; then
echo "successfully created ssh tunnel."
else
echo "error creating ssh tunnel."
fi
Mas quando eu ssh em vagrant, o túnel não foi criado. Olhando para /tmp/sshtunnel.log mostra-me:
Warning: Permanently added 'remotemachine,1.2.3.4.5' (ECDSA) to the list of known hosts.
Permission denied (publickey).
Executar o comando ssh manualmente estabelece com sucesso o túnel. Portanto, parece que o encaminhamento de agentes não funciona quando os provedores são executados?