web-dev-qa-db-fra.com

Comment ajouter un hôte connu SSH dans un script Bash?

Je crée un script Bash pour fournir un nouveau serveur que je peux déployer une application Web à. Une chose que je dois toujours faire est que github comme hôte connu en utilisant ssh [email protected]. Comment puis-je automatiser ce processus dans un script Bash et le faire de manière idempotente?

14
Andrew

Le simple moyen d'aller serait de faire quelque chose comme ça.

ssh-keyscan remote_server >>~/.ssh/known_hosts

Si cette case est neuve, vous devrez peut-être aussi créer le ~/.ssh Répertoire avant de courir SSH-Keyscan .

Gardez à l'esprit que SSH-Keyscan peut prendre un nombre arbitraire de noms d'hôte. Il obtiendra toutes les clés qu'il peut.

17
Zoredache

Essayez-vous d'automatiser l'acceptation de la nouvelle clé? Si tel est le cas, vous pouvez utiliser -ostricthostkeyChecking = non.
Cela fait donc une très mauvaise idée car vous êtes maintenant complètement ouvert aux attaques man-in-intermédiaires.

Une meilleure option serait simplement de gérer un fichier_hosts connecté et de réutiliser ce fichier lorsque vous prévoyez de nouveaux serveurs. Collez-le sur GitHUB et écrivez un script simple pour télécharger ce fichier avant l'osse dans GitHUB.

La vérification de la clé d'hôte stricte est une bonne chose.

4
yoonix

Je ne suis pas sûr que je comprenne la question, mais je pense que vous voulez ignorer l'invite connu_host ou l'éviter entièrement, auquel cas:

ssh -o stricthostkeyChecking = non

ou d'autres suggestions à: http://www.joedog.org/2012/07/ssh-Disable-know_hosts-prompt/

1
Sirex