
Encontré un comportamiento desconcertante en Ubuntu 18.04.4 LTS.
En una terminal, me gustaría escribir una clave privada en un FIFO.
$ mkfifo /tmp/fifo
$ chmod o-rwx /tmp/fifo
$ chmod g-rwx /tmp/fifo
$ cat id_rsa > /tmp/fifo
En otra terminal, me gustaría leer ese FIFO para poder obtener el contenido de la clave.
$ ssh -i /tmp/fifo -o StrictHostKeyChecking=no <<user@address>>
Esperaría que la escritura en el primer terminal se bloqueara hasta que se produjera la lectura en el segundo terminal, momento en el que ambos se liberarían. Y esto sucede la mayor parte del tiempo.
Desafortunadamente, hay ocasiones en las que se necesitan dos escrituras (la operación cat) para que la lectura sea exitosa; la lectura liberará la primera escritura, pero la lectura en sí no se liberará hasta que se produzca otra escritura.
¿Alguien ha observado este fenómeno antes? Cualquier información sería muy apreciada.