O comando:
ssh -F <(vagrant ssh-config) default
executa o comando vagrant
em um processo separado com seu stdout conectado a um pipe. A outra extremidade do pipe está conectada como descritor de arquivo n
(no seu caso, é 11) para um novo processo que executa ssh
e o shell é executado:
ssh -F /proc/self/fd/n default
Agora, isso só funciona se ssh
não fechar seus descritores de arquivo na inicialização.
Infelizmente, isso acontece.
Se estiver usando zsh
, uma alternativa é usar a forma =(...)
da substituição do processo em que, em vez de usar um canal e /proc/self/fd
, ele usa um arquivo temporário.
Ou você pode usar um descritor de arquivo que ssh
não feche. Por exemplo, se você não estiver alimentando nada com ssh
(se o comando remoto não estiver lendo nada de stdin), você poderá usar fd
0, por exemplo:
vagrant ssh-config | ssh -F /dev/stdin -n default