Отправьте пароль через stdin в `ssh-copy-id`

Мне нужно автоматизировать некоторые развертывания идентификации, в идеале используя ssh-copy-id .

Я пытаюсь предоставить пароль через stdin, что возможно на ssh , используя флаг -S . Я знаю, что я могу отправить дополнительные параметры в ssh используя флаг -o в команде ssh-copy-id однако на этой странице нет примеров использования этого флага.

Поэтому я попытался передать SSH-пароль для ssh-copy-id через stdin, используя:

 $# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S" 

Но все, что я получаю, это:

 /bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s 

РЕДАКТИРОВАТЬ:

Я пытаюсь предоставить пароль через stdin, что возможно на ssh , используя флаг -S .

Это утверждение неверно. Я действительно прочитал этот флаг у sudo man;

  • Как отключить ssh-agent?
  • Почему гидра не отключается?
  • Что это за ошибка SSH в отношении «неправильного идентификатора RSA1» и «неуказанного сбоя GSS»?
  • «Постоянно добавлен ключ хоста RSA», что это значит?
  • Уничтожать локальные файлы на удаленном сервере
  • Не удается подключиться к ssh из crontab
  • Первичный трафик на контейнер Docker
  • Как я могу заставить команду экрана GNU автоматически запускаться с каждой сессии ashy BusyBox?
  • 2 Solutions collect form web for “Отправьте пароль через stdin в `ssh-copy-id`”

    Возможно, вы захотите установить sshpass и изменить свой вызов на ssh-copy-id :

     sshpass -p "$TMP_PASS" ssh-copy-id 

    Где вы нашли информацию о опции -S ? Это нечто совершенно другое! Он используется для мультиплексирования и ControlPath.

    SSH не будет принимать пароли на stdin никогда , поэтому вы должны предварительно установить авторизованные ключи в своем развертывании (предпочтительный вариант) или использовать sshpass или expect как описано во многих других вопросах.

    Linux и Unix - лучшая ОС в мире.