Você está passando a saída de vagrant ssh-config
na entrada padrão do comando ssh
. No momento em que ssh
executar o comando remoto e conectar o stdin remoto ao stdin local, o final do arquivo foi atingido. Portanto, o shell remoto vê o final do arquivo em sua entrada padrão e sai imediatamente.
Normalmente você deve passar o arquivo de configuração em um descritor de arquivo diferente:
ssh -F <(vagrant ssh-config) default
mas isso não funciona porque ssh
fecha os descritores de arquivo não padrão antes de ler seu arquivo de configuração. Portanto, você precisará passar um nome de arquivo real para o processo ssh
. Pode ser um pipe nomeado se você não quiser armazenar a saída de vagrant ssh-config
:
mkfifo fifo
vagrant ssh-config >fifo &
ssh -F fifo …
rm fifo