Как эта команда оболочки работает?

Следующая команда помещает содержимое локального id_rsa.pub в файл authorized_keys на хосте.

Но я не совсем понимаю, как cat и | работает вместе для достижения этой цели, может кто-нибудь объяснить?

 cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys' 

Команда cat выводит содержимое файла .ssh/id_rsa.pub ; | (pipe) получает этот текстовый вывод, а затем отправляет (т.е. передает) текст в ssh .

Затем ssh использует этот текст в качестве ввода для команды cat >> .ssh/authorized_keys .

Для команды cat если имя файла не указано, оно берет его из stdin. В этом случае его вывод | ,