Как настроить систему ключей SSH без взаимодействия?

Как настроить систему ключей SSH без взаимодействия?

Мне нужно иметь возможность настроить sshключевую систему без взаимодействия. Мне все равно, нужно ли устанавливать пакеты или вводить пароли открытым текстом.

Как создать систему, которая настраивает sshсистему ключей, позволяя машине A подключаться sshк машине B и наоборот с помощью ключей SSH, без взаимодействия?

решение1

Вот простой код (Копирование и вставка НЕ ​​РАБОТАЕТ!!! Измените такие вещи, как my-usernameиmy-ip). Запустить на обоих хостах:

#!/bin/bash
apt-get -y install sshpass
ssh-keygen -p -N "" -f ~/.ssh/id_rsa
sshpass -p 'my_password' ssh-copy-id my_username@my_host_2

Заменить my_host_2на my_host_1машину 2.

Объяснение:

Первая линия #!/bin/bashназывается шебанг. СмотритездесьЧтобы получить больше информации.

Вторая строка устанавливается sshpassбез взаимодействия.

Третья строка используется ssh-keygenдля создания ключа. -qозначает тишина; она не запрашивает так много. -N ""означает отсутствие пароля и -fсохранение его в папке по умолчанию.

Последняя строка копирует фактический ключ с помощью ssh-copy-idи sshpass. Вы не можете использовать echoпароль через stdin, поэтому мы используем sshpass, который является ближайшим эквивалентом. -p— это пароль для использования. Аргумент ssh-copy-id— это имя пользователя и хост, на который нужно скопировать ключ.

Связанный контент