5

Мой пример использования - мне нужно скопировать мой ключ ssh для авторизованного доступа на удаленную машину. Мне нужно иметь возможность вызывать сценарий, который копирует мой ключ ssh на удаленную машину без необходимости ввода. В настоящее время он запрашивает пароль, а также да к отпечатку пальца RSA. Мне нужно, чтобы иметь возможность автоматически добавлять мои хосты друг к другу через диапазон IP

3 ответа3

10

Я считаю, что вы можете использовать sshpass.

  • Ubuntu/Debian: apt-get install sshpass
  • Fedora/CentOS: yum install sshpass

Например:

sshpass -p "PASSWORD" ssh-copy-id -o StrictHostKeyChecking=no USERNAME@IP

0

Если вы можете ввести пароль один раз, следующий скрипт очень быстро скопирует ваш ключ ssh на большое количество хостов (перечисленных в hosts.txt), не вводя пароль в командной строке:

# sudo yum install moreutils sshpass openssh-clients
echo 'Input Password:';
read -s SSHPASS;
export SSHPASS;
parallel -i -j 25 sshpass -e ssh-copy-id '-o ConnectTimeout=10 -o StrictHostKeyChecking=no {}' -- `cat hosts.txt`;
export SSHPASS=''
0

Для запроса пароля ssh попробуйте использовать ansible/ansible-playbook -k/--ask-pass . Он будет вызывать sshpass(к вашему сведению, может быть, OSX не поставляется с sshpass).

Для проверки ключа хоста добавьте

[defaults]
host_key_checking = False

в ~/.ansible.cfg или /etc/ansible/ansible.cfg.

Или export ANSIBLE_HOST_KEY_CHECKING=False как написано в этом руководстве .

Для ключей SSH развертывания используйте authorized_keys модуль в анзибле пьес. Пользователю проще поддерживать скрипты идемпотентности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .