Команда cat
может объединять файлы и выводить их на стандартный вывод.
Когда он вызывается без указания какого-либо файла или с -
, он будет читать стандартный ввод.
В вашей команде он используется обоими способами.
Шаг за шагом:
cat ~ / .ssh / id_rsa.pub
) делает именно то, что вы поняли: она печатает локальный файл ~ /. ssh / id_rsa.pub
в стандартный вывод. |
вы перенаправляете локальный стандартный вывод в качестве стандартного ввода следующей команде ( ssh
). ssh
практически заставит выполнить команду внутри строки ""
на удаленной машине, передающей стандартный ввод из конвейера. ~ / .ssh
, и благодаря опции -p
он будет не генерировать ошибку, если каталог просто существует. &&
вы выполните следующую cat
только в том случае, если предыдущий mkdir
завершится без ошибок. cat >> ~ / .ssh / authorized_keys
- это вызов cat
без файла . Его вывод будет добавлен (если возможно) в файл ~ / .ssh / authorized_keys
благодаря оператору перенаправления ( >>
). Примечания:
Во многих системах существует команда ssh-copy-id
для копирования локальных ключей на удаленном компьютере.Для получения дополнительной информации введите man ssh-copy-id
ssh-copy-id - используйте локально доступные ключи для авторизации входа на удаленный компьютер
Как указано roalma в комментарии, исходная командная строка может работать или вне зависимости от (ограничительных) настроек конфигурации ssh
.
Разделы Vfat не поддерживают владельцев/группы файлов. Таким образом, ядру Linux приходится его подделывать. По умолчанию он делает root :корневым владельцем всего. Чтобы изменить это, добавьте uid=youruser,gid=yourgroup
в параметры монтирования. Тогда этот пользователь и группа будут владеть всем.