«CP: не может создать регулярный файл» на VFAT отформатированного внешнего USB-накопителя

Команда 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 .

0
13.09.2018, 13:56
1 ответ

Разделы Vfat не поддерживают владельцев/группы файлов. Таким образом, ядру Linux приходится его подделывать. По умолчанию он делает root :корневым владельцем всего. Чтобы изменить это, добавьте uid=youruser,gid=yourgroupв параметры монтирования. Тогда этот пользователь и группа будут владеть всем.

1
28.01.2020, 02:42

Теги

Похожие вопросы