
Мне нужно иметь возможность настроить 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
— это имя пользователя и хост, на который нужно скопировать ключ.